Python don';我不知道为什么:属性错误:';列表';对象没有属性';groupby';
我想改善我以前的cod,这样三个馅饼就可以一次画出来了Python don';我不知道为什么:属性错误:';列表';对象没有属性';groupby';,python,python-3.x,pandas,for-loop,group-by,Python,Python 3.x,Pandas,For Loop,Group By,我想改善我以前的cod,这样三个馅饼就可以一次画出来了 data=a.groupby(i)[“收入”].sum() AttributeError:“list”对象没有属性“groupby” 数据如下: ta tb tc ... income 1 2011 a ... 1352.23 1 2012 c ... 706.87 2 2011 b ... 3618.04 2 2012 c ... 11745.42 3 2013
data=a.groupby(i)[“收入”].sum()
AttributeError:“list”对象没有属性“groupby” 数据如下:
ta tb tc ... income
1 2011 a ... 1352.23
1 2012 c ... 706.87
2 2011 b ... 3618.04
2 2012 c ... 11745.42
3 2013 a ... 345.98
我想要的是这样的:
ta tb tc ... income
1 2011 a ... 1352.23
1 2012 c ... 706.87
2 2011 b ... 3618.04
2 2012 c ... 11745.42
3 2013 a ... 345.98
df=pd.read\u csv('e:/test\u csv',low\u memory=False)
a=['ta','tb','tc']
对于我来说,在一个:
印刷品(第(i)类)
数据=df.groupby(i)[“收入”].sum()
data.plot.pie(autopct='%.1f%%')
plt.show()
前一个代码:但不知怎么得到了AttributeError
熊猫中groupby的正确用法如下:
data.groupby(['col1', 'col2'])['col3'].sum()
你应该有:
data = df.groupby(['ta', 'tb', 'tc'])['income'].sum()
请参阅。您可以删除
for
循环,然后执行以下操作:
data = df.groupby(['ta', 'tb', 'tc'])['income'].sum()
然后绘制它。使用df.groupby(i)
和plt.figure()
分别绘制3个饼图:
a = ['ta', 'tb', 'tc']
for i in a:
d = df.groupby(i)['income'].sum()
plt.figure()
d.plot.pie(autopct='%.1f%%')
它是一个不具有属性
groupby
的a
。您期望a
是什么?groupby
是数据帧的一种方法,而不是列表。a
是一个列表。因此,它抛出了错误。您应该将其更改为:data=df.groupby(i)[income'].sum()
@thx Adam Smith。我想用更少的代码绘制3饼图
,我在问题的末尾添加了详细信息,请看一看。@Sean.H-Super,如果我的答案有用,请不要忘记它-单击答案旁边的复选标记,将其从灰显切换为填充。谢谢