在熊猫中分组和总和

时间:2015-12-12 02:34:50

标签: python pandas group-by

说我有这样的数据框:

df= { 'class': ['A','A','A','A','A','B','B','B','B'],
         'ID':[1,2,2,3,3,4,4,4,5]}  

Class ID
A     1 
A     2 
A     2 
A     3 
A     3 
B     4 
B     4 
B     4 
B     5 

我想总结这些数据:

Class  count(distinct(ID))
A      3
B      2

我知道这是微不足道的,但我已经被困在这里:

df.groupby(by=['Class', 'ID']).count()

给了我

enter image description here

由于某种原因,我似乎无法在小组之后获得总结。 感谢。

2 个答案:

答案 0 :(得分:2)

我认为您正在寻找nunique

In [11]: df.groupby("Class")["ID"].nunique()
Out[11]:
Class
A    3
B    2
Name: ID, dtype: int64

答案 1 :(得分:1)

(df[['Class','ID']]
 .drop_duplicates()
 .groupby('Class')
 .count())