Python 熊猫:根据其无序的多列值获取唯一行
有数据帧的Python 熊猫:根据其无序的多列值获取唯一行,python,pandas,Python,Pandas,有数据帧的 In [1]: df = pd.DataFrame([[1,2],[2,3],[3,4],[2,1]], columns=['id_1', 'id_2']) Out [1]: id_1 id_2 0 1 2 1 2 3 2 3 4 3 2 1 选择具有id\u 1=i,id\u 2=j的行的最佳方法是什么,这样df中就没有具有id\u 1=j和id\u 2=i的行了 对于上面的示例,预期结果是 id_1
In [1]: df = pd.DataFrame([[1,2],[2,3],[3,4],[2,1]], columns=['id_1', 'id_2'])
Out [1]:
id_1 id_2
0 1 2
1 2 3
2 3 4
3 2 1
选择具有id\u 1=i
,id\u 2=j
的行的最佳方法是什么,这样df
中就没有具有id\u 1=j
和id\u 2=i
的行了
对于上面的示例,预期结果是
id_1 id_2
1 2 3
2 3 4
您可以先按行对值进行排序,然后检查重复项:
df[~df.apply(pd.np.sort, axis=1).duplicated(keep=False)]
# id_1 id_2
#1 2 3
#2 3 4
您可以先按行对值进行排序,然后检查重复项:
df[~df.apply(pd.np.sort, axis=1).duplicated(keep=False)]
# id_1 id_2
#1 2 3
#2 3 4
谢谢,
pd.np.sort
似乎非常有用。谢谢,pd.np.sort
似乎非常有用。