Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python don';我不知道为什么:属性错误:';列表';对象没有属性';groupby';_Python_Python 3.x_Pandas_For Loop_Group By - Fatal编程技术网

Python don';我不知道为什么:属性错误:';列表';对象没有属性';groupby';

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

我想改善我以前的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   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,如果我的答案有用,请不要忘记它-单击答案旁边的复选标记,将其从灰显切换为填充。谢谢