Pandas dataframe groupby,然后分别对多列求和

数据挖掘 Python 熊猫
2022-03-04 10:21:45

我有一个熊猫数据框如下:

df = pd.DataFrame({
    'Date': ['2017-1-1', '2017-1-1', '2017-1-2', '2017-1-2', '2017-1-3'],
    'Groups': ['one', 'one', 'one', 'two', 'two'], 
    'data1': range(1, 6),
    'data2': range(10, 15})

输出:

    Date      Groups     data1    data2
0  2017-1-1    one       1        10
1  2017-1-1    one       2        11
2  2017-1-2    one       3        12
3  2017-1-2    two       4        13
4  2017-1-3    two       5        15

我希望输出看起来像这样:

    Date      Groups     sum of data1    sum of data2
0  2017-1-1    one       6                33
1  2017-1-2    two       9                28

我可以按“Group”和 agg.(sum) 任一数据列分组,但不能同时执行 2 个。我怎样才能做到这一点?

谢谢。

1个回答

国际大学联盟:

In [5]: (df.groupby("Groups", as_index=False)
           .agg({"Date":"first", "data1":"sum", "data2":"sum"}))
Out[5]:
  Groups      Date  data1  data2
0    one  2017-1-1      6     33
1    two  2017-1-2      9     27