在对列使用groupby之后,对重复值的实例进行计数

时间:2019-07-10 15:33:26

标签: python pandas

我正在处理一个看起来像这样的数据集:

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

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

例如,在上述情况下,人员1复制了基因1,人员2没有复制基因,人员3复制了基因1和基因3。因此,我希望我的代码输出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

1 个答案:

答案 0 :(得分:1)

您可以使用size

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