2015-10-19 27 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