首页 > 解决方案 > 对列使用 groupby 后计算重复值的实例

问题描述

我正在处理一个如下所示的数据集:

col1
person1  gene1
person1  gene1
person1  gene2
person1  gene3
person1  gene4
person2  gene1
person2  gene2
person2  gene3
person2  gene4
person3  gene1

person3  gene1
person3  gene1
person3  gene2
person3  gene3
person3  gene3
person3  gene4

对于每个人,我想计算一个基因出现多次的次数。

例如,在我上面介绍的情况下,person1 有gene1 重复,person2 没有基因重复,person3 有gene1 和gene3 重复。因此,我希望我的代码输出 3。

我知道有一个重复的熊猫代码: DataFrame.duplicated(subset=None, keep='first')

但是,尝试将它应用到我的数据框时,我一直被告知我需要应用它?

谢谢

我添加了一个说明以获得更多帮助:

person1 gene1
person1 gene1
person1 gene2
person1 gene2
person2 gene1
person2 gene1
person3 gene1
person3 gene1
person3 gene2
person3 gene2
person3 gene2

标签: pythonpandas

解决方案


你可以做size

df.groupby([*df.columns]).size().gt(1).sum()
Out[37]: 3

推荐阅读