最佳通過例子來說明:GROUPBY在具有不同功能的熊貓用於不同的列
我想通過col1
和col2
聚集一數據幀,在col5
如果col3
和col4
求和結果和平均結果我只想總結col3-5我會用df.groupby(['col1','col2']).sum()
最佳通過例子來說明:GROUPBY在具有不同功能的熊貓用於不同的列
我想通過col1
和col2
聚集一數據幀,在col5
如果col3
和col4
求和結果和平均結果我只想總結col3-5我會用df.groupby(['col1','col2']).sum()
您可以使用Groupby.agg()
(或Groupby.aggregate()
)這個方法。
aggregate()
函數可以接受字典作爲參數,在這種情況下,它將鍵作爲列名和值作爲用於聚合的函數。如the documentation -
通過傳遞字典來聚合,您可以將不同的聚合應用於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
會是很好的樣本數據和預期的結果? – Zero