分组并求和几列熊猫

时间:2019-05-11 10:04:19

标签: python pandas dataframe group-by sum

我正在尝试按几列分组。仅需一列,只需df.groupby('c1').['c3].sum()

原始数据框

c1    c2    c3
1     1    2
1     2    12
2     1    87
2     2    12
2     3    87
2     3    13

所需结果

c2   c3(c1_1)    c3(c1_2)
1    2           87
2    12          12
3    (0?)        100

其中c3(c1_1)表示c3列的总和,其中c1的值为1

我不知道如何在此应用groupby。如果有人不仅会展示如何解决它,而且会展示没有这种愚蠢问题的阅读内容

1 个答案:

答案 0 :(得分:0)

您可以通过向groupby提供列表来一次将多列分组。如果您不介意输出的格式略有不同,则可以通过

In [32]: df.groupby(['c2', 'c1']).c3.sum().unstack(fill_value=0)
Out[32]:
c1   1    2
c2
1    2   87
2   12   12
3    0  100

只需做一些工作,就可以将其按摩成您提供的形式。