小编典典

从数据框中删除反向重复项

python

我有一个包含两列的数据框,A并且B。在这种情况下,A和的顺序B并不重要;例如,我会考虑(0,50)并将(50,0)其重复。在熊猫中,从数据框中删除这些重复项的有效方法是什么?

import pandas as pd

# Initial data frame.
data = pd.DataFrame({'A': [0, 10, 11, 21, 22, 35, 5, 50], 
                     'B': [50, 22, 35, 5, 10, 11, 21, 0]})
data
    A   B
0   0  50
1  10  22
2  11  35
3  21   5
4  22  10
5  35  11
6   5  21
7  50   0

# Desired output with "duplicates" removed. 
data2 = pd.DataFrame({'A': [0, 5, 10, 11], 
                      'B': [50, 21, 22, 35]})
data2
    A   B
0   0  50
1   5  21
2  10  22
3  11  35

理想情况下,输出将按column的值排序A


阅读 222

收藏
2020-12-20

共1个答案

小编典典

您可以在删除重复项之前对数据框的每一行进行排序:

data.apply(lambda r: sorted(r), axis = 1).drop_duplicates()

#   A    B
#0  0   50
#1  10  22
#2  11  35
#3  5   21

如果您希望按列对结果进行排序A

data.apply(lambda r: sorted(r), axis = 1).drop_duplicates().sort_values('A')

#   A    B
#0  0   50
#3  5   21
#1  10  22
#2  11  35
2020-12-20