使用熊猫在数据帧上执行分组依据,按计数排序并获取python中排名前2的计数

约翰·吉斯

我正在处理数据框,并希望按列(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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章