我正在处理数据框,并希望按列(ID
)分组,显示相应的标签并为每个标签计数。然后,如何使用python获取数据框中每个ID的前2个标签?
data=
ID Label
A Apple
B Apple
B Apple
C Banana
C Pear
A Pear
B Apple
C Apple
A Banana
A Apple
C Pear
A Banana
B Pear
B Pear
B Banana
C Apple
我已经能够通过ID和Label进行分组,并且还可以获得每个ID的计数,但是我无法获得仅获得每个ID的前2名的最后一部分。
data.groupby(['ID','Label']).size().reset_index(name='counts')
这给了我这张桌子:
ID Label counts
A Apple 2
A Banana 2
A Pear 1
B Apple 3
B Banana 1
B Pear 2
C Apple 2
C Banana 1
C Pear 2
我想要的预期结果是:
ID Label counts
A Apple 2
Banana 2
B Apple 3
Pear 2
C Apple 2
Pear 2
如果只需要head
两者(前2个)
data.groupby(['ID']).Label.value_counts().groupby(level=0).head(2)
Out[770]:
ID Label
A Apple 2
Banana 2
B Apple 3
Pear 2
C Apple 2
Pear 2
Name: Label, dtype: int64
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句