在我的代码中,type(i)
是str
,下面仍有回溯。尚未找到原因,也没有类似的问题,有人可以提供帮助吗?谢谢。
<class 'str'>
数据= a.groupby(i)['收入'] .sum()
AttributeError:“列表”对象没有属性“分组依据”
数据如下:
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_csv('e:/test_csv', low_memory=False)
a = ['ta', 'tb', 'tc']
for i in a:
print(type(i))
data = a.groupby(i)['income'].sum()
data.plot.pie(autopct='%.1f%%')
plt.show()
起初,我有3个饼图有3个类似的代码,然后我想知道是否仅用1个代码就可以做到。
代码:
df = pd.read_csv('e:/test_csv', low_memory=False)
data1 = a.groupby('ta')['income'].sum()
data1.plot.pie(autopct='%.1f%%')
data2 = a.groupby('tb')['income'].sum()
data2.plot.pie(autopct='%.1f%%')
data3 = a.groupby('tc')['income'].sum()
data3.plot.pie(autopct='%.1f%%')
plt.show()
答案 0 :(得分:1)
您可以删除for
循环并改为执行此操作:
data = df.groupby(['ta', 'tb', 'tc'])['income'].sum()
然后绘制它。
答案 1 :(得分:0)
在熊猫中groupby的正确用法是:
data.groupby(['col1', 'col2'])['col3'].sum()
您应该有:
data = df.groupby(['ta', 'tb', 'tc'])['income'].sum()
答案 2 :(得分:0)
将<div class="row">
<div class=col-md-2></div>
<div class="col-md-8">
<input type="text" class="form-control" />
</div>
<div class="col-md-2" style="text-align:left;">
<button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search"></i></button>
</div>
</div>
与df.groupby(i)
一起用于3个单独的饼图:
plt.figure()