哪个是在某些列条件下汇总python中行(总和)的最简单方法?

问题描述 投票:0回答:1

我尝试使用聚合和分组函数,但没有成功,事情就像这个df:

df:
index   var1   var2   col1   col2
1        1      10     15     23
2        1       1     34     32
2        2       1     12     32
2        1       2     14     16
2        2       2      4     16
3        1       3     65     12
3        2       3      5     12

df.function:

index   var2   col1   col2
1        10     15     23
2         1     46     32
2         2     18     16
3         3     70     12

注意,总和是由col1而不是col2完成的。

python dataframe group-by aggregate tidy
1个回答
1
投票
这里的技巧是使用agg将不同的聚合函数应用于col1和col2。您可以使用带有键作为列名称的字典来执行此操作。我将max用于col2,但可以是第一个或最后一个,取决于您想要的内容。

df.groupby(['index', 'var2']).agg({'col1':'sum', 'col2':'max'})

输出:

col1 col2 index var2 1 10 15 23 2 1 46 32 2 18 16 3 3 70 12

© www.soinside.com 2019 - 2024. All rights reserved.