示例数据框:
import pandas as pd
data = data = { 'num1': [1,2,3,4,5],
'num2': [1,1,2,3,1],
'num3': [5,4,3,2,1]}
df = pd.DataFrame(data)
print(df.head())
>>> df.head()
num1 num2 num3
0 1 1 5 #dups with row 4
1 2 1 4
2 3 2 3
3 4 3 2
4 5 1 1 #dups with row 1
在此示例数据框中,我尝试提取第一行和最后一行, 因为它们的内容彼此重复 (1,1,5)
如果值的顺序相同(看起来),下面的代码只会找到重复的行:
dups =df[df.duplicated(subset=None, keep='first')]
因此导致数据集为空。
谢谢。
最佳答案
这是你想要的吗?
In [257]: df[pd.DataFrame(np.sort(df.values), columns=df.columns, index=df.index)
.duplicated(keep='first')]
Out[257]:
num1 num2 num3
4 5 1 1
或者如果您需要所有副本:
In [258]: df[pd.DataFrame(np.sort(df.values), columns=df.columns, index=df.index)
.duplicated(keep=False)]
Out[258]:
num1 num2 num3
0 1 1 5
4 5 1 1
关于python - 在 Pandas 中查找重复行,其中列值的顺序无关紧要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48156059/