寻找与顺序无关紧要的 pd.DataFrame.drop_duplicates() 的类似物

Looking for an analogue to pd.DataFrame.drop_duplicates() where order does not matter

我想使用类似于删除 DataFrame 重复项的方法。我希望列的顺序无关紧要。我的意思是函数应该认为由条目 'a', 'b' 组成的行与由条目 'b', 'a' 组成的行相同。例如,给定

df = pd.DataFrame([['a', 'b'], ['c', 'd'], ['a', 'b'], ['b', 'a']])

   0  1
0  a  b
1  c  d
2  a  b
3  b  a

我想获得:

   0  1
0  a  b
1  c  d

优先考虑效率,因为我运行这是在 groupby 操作中的一个巨大数据集上进行的。

先调用np.sort,然后删除重复项。

df[:] = np.sort(df.values, axis=1)
df.drop_duplicates()

   0  1
0  a  b
1  c  d