我有一个包含两列的数据框,A并且B。在这种情况下,A和的顺序B并不重要;例如,我会考虑(0,50)并将(50,0)其重复。在熊猫中,从数据框中删除这些重复项的有效方法是什么?
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。
您可以在删除重复项之前对数据框的每一行进行排序:
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