如何添加" all" pandas groupby的小组

时间:2016-02-25 14:45:49

标签: python pandas group-by

我有一个我希望按组分析的数据框。我可以通过以下方式轻松完成。但我也想添加一个" all"组无需制作额外的数据副本。因此,我想添加另一个包含所有内容的组,而不是2个单独的不相交组。用例是我想迭代每个组和一个所有组,以保持一切可读。

df=pd.DataFrame({'A': ['good', 'good', 'bad'], 'B' :[4,2,1], 'C':[10,10,10]})
df_groups=df.groupby('A')
for group, df in df_groups:
    print group
    //do group level computation

例如我想通过类似

的方式进行迭代
for group, df in zip(df_groups.groups.keys() + ['all'], df_groups.groups.values() + df_groups.groups.values()):
    print group
    //do group level computation. This time on each group, and also an all group.

1 个答案:

答案 0 :(得分:1)

您可以将margin功能的pivot_table参数设置为True以获得总数('全部')。

df = pd.DataFrame({'A': ['good', 'good', 'bad'], 'B' :[4,2,1], 'C':[10,10,10]})

pd.pivot_table(df, index=['A'], aggfunc=np.sum, margins=True)

      B   C
A          
bad   1  10
good  6  20
All   7  30