Python 如何计算重复的行数?
您好,我正在使用DF,我有以下问题: 我如何检查重复的数量,如下所示: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__':
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