[英]groupby in pandas with different functions for different columns
最好以示例说明:
我想通过col1
和col2
聚合一个DataFrame,对col3
和col4
结果求和,并对col4
结果col5
如果我只是想对col3-5求和,则可以使用df.groupby(['col1','col2']).sum()
您可以Groupby.agg()
使用Groupby.agg()
(或Groupby.aggregate()
)方法。
aggregate()
函数可以接受字典作为自变量,在这种情况下,它将键视为列名,将值视为用于聚合的函数。 如文档中所给-
通过传递要聚合的字典,您可以将不同的聚合应用于DataFrame的列。
范例-
import numpy as np
result = df.groupby(['col1','col2']).agg({'col3':'sum','col4':'sum','col5':np.average})
演示-
In [50]: df = pd.DataFrame([[1,2,3,4,5],[1,2,6,7,8],[2,3,4,5,6]],columns=list('ABCDE'))
In [51]: df
Out[51]:
A B C D E
0 1 2 3 4 5
1 1 2 6 7 8
2 2 3 4 5 6
In [52]: df.groupby(['A','B']).aggregate({'C':np.sum,'D':np.sum,'E':np.average})
Out[52]:
C E D
A B
1 2 9 6.5 11
2 3 4 6.0 5
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.