您好,我正在与DF合作,并且我有以下问题:
我如何检查像这样的重复项的数量:
A B C
1 2 3
1 2 3
1 1 2
2 1 2
2 2 1
3 2 1
我可以为谁计算一个示例,即重复项为2,因为我有3行重复为1,有2行重复为2。
我怎么能计算出重复项是1,因为只有一次您看到的2行是相同的 1 2 3
谢谢
我了解您需要每列重复项。如果是这样,请使用布尔选择来标识第一个重复项。cumsum()获取组并在组中获取最大值。
df.apply(lambda x: ((x==x.shift(-1))&(x.diff()!=0)).cumsum().max())
A 2
B 3
C 3
如果要沿行重复,请查找重复项,将其转换为整数并求和
((df.apply(lambda x: x.duplicated(False),axis=1)).astype(int)).sum(axis=1)
0 0
1 0
2 4
3 3
4 3
5 0
对于问题的第二部分,请执行以下@Cody Gray的操作
df.groupby(['A', 'B', 'C']).agg(lambda x: x.duplicated(keep='last').count())
A B C
1 1 2 1
2 3 2
2 1 2 1
2 1 1
3 2 1 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句