Python 如何计算重复的行数?

Python 如何计算重复的行数?,python,pandas,Python,Pandas,您好,我正在使用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复制 因为只有一次两行是相同的,正如您在123 谢谢我想这会帮助你解决你的问题 from pandas import DataFrame if __name__ == '__main__':

您好,我正在使用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复制

因为只有一次两行是相同的,正如您在
123


谢谢

我想这会帮助你解决你的问题

from pandas import DataFrame

if __name__ == '__main__':
    d = {'A': [1, 1, 1, 2, 2, 3],
         'B': [2, 2, 1, 1, 2, 2],
         'C': [3, 3, 2, 2, 1, 1]}

    df = DataFrame(d)
    duplicated_rows = df[df.duplicated()]
    print(duplicated_rows)
输出:

   A  B  C
1  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

我回答你的问题了吗?很乐意帮忙。
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