2015-10-19 34 views

回答

1

您可以使用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 
+0

謝謝,有沒有提到所有列的默認類型? – eran

+0

我很抱歉沒有得到您的問題。 –

+0

說我想總結兩個特定的列,並在所有其餘的平均值,沒有專門命名它們 – eran

相關問題