首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取pandas groupby对象上count()函数的最大值

获取pandas groupby对象上count()函数的最大值
EN

Stack Overflow用户
提问于 2018-06-27 10:56:33
回答 1查看 19.2K关注 0票数 2

问题

使用pandas时,我需要返回每个groupby对象的最大计数行。

数据集

我有一个名为"matches“的数据帧,它看起来像这样:

FeatureID gene pos 0 1_1_1 KRAS_1 6 1 1_1_1 KRAS_2 8 2 1_1_1 KRAS_3 11 3 1_1_1 NRAS_1 3 4 1_1_1 NRAS_2 11 5 1_1_1 NRAS_3 84 6 1_1_10 KRAS_1 4 7 1_1_10 KRAS_2 3 8 1_1_10 KRAS_3 14 9 1_1_10 NRAS_1 4 10 1_1_10 NRAS_2 6 11 1_1_10 NRAS_3 83

我尝试过的

我需要通过FeatureID将数据帧组合在一起,然后获得每个组中的位置计数:

代码语言:javascript
复制
matches.groupby(["FeatureID", "gene"]).count()

这会导致:

FeatureID gene 1_1_1 KRAS_1 6 KRAS_2 8 KRAS_3 11 NRAS_1 3 NRAS_2 11 NRAS_3 84 1_1_10 KRAS_1 4 KRAS_2 3 KRAS_3 14 NRAS_1 4 NRAS_2 6

所需输出:

我需要取回每个groupby对象中包含最高计数的行,但我不知道如何做到这一点。

FeatureID gene count 1_1_1 NRAS_3 84 1_1_10 KRAS_3 14

解决方案

下面这行代码返回了每个groupby组的最大值的基因:

代码语言:javascript
复制
matches.groupby(["FeatureID", "gene"]).count().sort_values("pos").groupby(level=0).tail(1)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-27 10:58:21

您可以在level=0上使用max

代码语言:javascript
复制
matches.groupby(["FeatureID", "gene"]).count().max(level=0)

如果保持两个水平

代码语言:javascript
复制
df.groupby(["FeatureID", "gene"]).count().sort_values().groupby(level=0).tail(1)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51053911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档