【发布时间】:2019-02-27 04:05:35
【问题描述】:
我有一个简单的用例。我想将文本文件读入熊猫文件并遍历唯一的 id 以绘制 xy 图。
在许多其他项目中为我工作得很好,但现在我得到了TypeError: 'int' object is not iterable。
起初我得到TypeError: 'numpy.float64' object is not iterable这就是为什么我将 id 的类型更改为 int (参见代码)。但这也不起作用。我不明白为什么。有什么想法吗?
f = open(file,"r+")
with open(file,"r+") as f1:
data10 = f1.read()
TESTDATA = StringIO(data11)
df = pd.read_table(TESTDATA, sep=" ")
df.columns = ["x", "y", "id"]
#Astype because i got the error TypeError: 'numpy.float64' object is not iterable
df.id = df.id.astype(int)
#get unique values of column id
list1=df['id'].tolist()
list1=list(set(list1))
fig, ax = plt.subplots()
for i ,g in list1:
x = df[df.id==i]['x']
y = df[df.id==i]['y']
g.plot(x='x',y='x', marker='o', ax=ax, title="Evaluation")
【问题讨论】:
-
你能告诉我data10和data11是什么吗?
-
你期望 g 将包含什么 for i,g in list1: .. ?
-
抱歉,这段代码在任何地方都无法正常工作。我必须这么清楚,因为我真的考虑过如何回答你的问题并意识到,我什至不知道从哪里开始......你可以在这里获得帮助,但请从你身边做两件事:be诚实并表现出自己的一些努力。
-
也就是说,您的错误消息被抛出,因为您尝试在一个简单列表的 for 循环中使用两个变量。但是一个简单的列表每次迭代只提供一个,所以这是错误的。扔掉 for 循环中的
, g。 -
但是,下一个错误很快就会出现...使用
ax.plot()而不是g.plot()。为什么你只绘制你的 x 数据,但超过x和y?
标签: python pandas loops iteration typeerror