如何计算重复的行数?

Tlaloc-ES:

您好,我正在与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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章