删除具有反转值的重复行

Remove repeated rows with inverted values

我有以下数据框:

print(df)


col_1     col_2     
 A           B        
 B           A 
 A           C

我想删除重复的行,具有倒置的值,获得:

print(df_final)


col_1     col_2     
 A           B        
 A           C

我试过 .drop_duplicates(subset = ["col_1", "col_2]) 但它没有产生预期的输出。

尝试使用 duplicated:

df[df.duplicated(['col_1'], keep=False)]

输出:

  col_1 col_2
0     A     B
2     A     C

试试这个:

import pandas as pd

df=pd.DataFrame(data={"col_1": ["A", "B", "A"], "col_2": ["B", "A", "C"]})

df["col_3"]=df.apply(lambda x: str(sorted(x.values)), axis=1)

df=df.drop_duplicates("col_3").drop("col_3", axis=1)

print(df)

并输出:

   col_1 col_2
0     A     B                                               
2     A     C                                               
[Program finished]

您可以使用按列排序并删除重复项来做到这一点

df = pd.DataFrame([['A', 'B'], ['B', 'A'], ['A', 'C'], ['C', 'B'], ['B', 'D']], columns=('col_1', 'col_2'))

result = df.loc[pd.DataFrame(np.sort(df, axis=1), index=df.index).drop_duplicates().index]

结果

col_1 col_2
0     A     B
1     B     A
2     A     C
3     C     B
4     B     D


 col_1 col_2
0     A     B
2     A     C
3     C     B
4     B     D