2017-01-16 94 views
1

我有一个数据框,我使用.aggregate({'col1': np.sum}),这将执行col1中的值的总和并将它们聚合在一起。是否可以执行计数,如.aggregate({'col1': some count function here})熊猫在数据框中的聚合计数

+1

'{ 'COL1': '计数'}'或'{'COL1 ':'size'}'或'{'col1':'nunique'}'取决于你的用例。 – root

+0

或者'len'(内置),我建议这是最可读的。 –

+0

'len'通常比''size'慢,因为它是内置的python,而不是引擎盖下的numpy。 – root

回答

3

根据您的使用情况,您可以使用'size','count''nunique'。它们之间的差异是:

  • 'size':计数包括NaN和重复值。
  • 'count':计数不包括NaN但包括重复。
  • 'nunique':唯一值的计数,不包括重复和NaN

例如,考虑下面的数据帧:

df = pd.DataFrame({'col0': list('aabbcc'), 'col1': [1, 1, 2, np.nan, 3, 4]}) 

    col0 col1 
0 a 1.0 
1 a 1.0 
2 b 2.0 
3 b NaN 
4 c 3.0 
5 c 4.0 

然后,使用所描述的三个功能:

df.groupby('col0')['col1'].agg(['size', 'count', 'nunique']) 

     size count nunique 
col0      
a  2  2  1 
b  2  1  1 
c  2  2  2 
+0

谢谢! 'count'是我所需要的。 –