微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 在Pandas中查找重复行,其中列值的顺序无关紧要

示例数据帧:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐