【问题标题】:don't know why: AttributeError: 'list' object has no attribute 'groupby'不知道为什么:AttributeError: 'list' object has no attribute 'groupby'
【发布时间】:2018-11-08 07:21:46
【问题描述】:

我想改进我以前的鳕鱼,以便可以一次绘制三个馅饼。

<class 'str'>
data = a.groupby(i)['income'].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

我想要的是这样的:

    df = pd.read_csv('e:/test_csv', low_memory=False)
    a = ['ta', 'tb', 'tc']
    for i in a:
        print(type(i))
        data = df.groupby(i)['income'].sum()
        data.plot.pie(autopct='%.1f%%')
    plt.show()

之前的代码:但是不知怎么得到了AttributeError

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()

【问题讨论】:

  • a 没有groupby 属性。你期望a 是什么?
  • groupbydataframe 而不是 list 的方法。 a 是一个列表。因此,它会引发错误。您应该将其更改为:data = df.groupby(i)['income'].sum()
  • @thx 亚当斯密。我想用更少的代码画3个pie chart,我在问题末尾添加了细节,请看一下。

标签: python python-3.x pandas for-loop group-by


【解决方案1】:

您可以删除 for 循环并改为执行此操作:

data = df.groupby(['ta', 'tb', 'tc'])['income'].sum()

然后绘制它。

【讨论】:

    【解决方案2】:

    使用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%%')
    

    【讨论】:

    • @Sean.H - 超级,如果我的回答有帮助,请不要忘记accept 它 - 单击答案旁边的复选标记,将其从灰色切换为已填充。谢谢。
    【解决方案3】:

    在pandas中groupby的正确用法是这样的:

    data.groupby(['col1', 'col2'])['col3'].sum()
    

    你应该有:

    data = df.groupby(['ta', 'tb', 'tc'])['income'].sum()
    

    Official Documentation 参考。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 2020-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-01
      • 2013-09-11
      相关资源
      最近更新 更多