2017-01-16 90 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'是我所需要的。 –