pandas:根据无序的多列值获取唯一的行

时间:2017-04-23 15:19:09

标签: python pandas

拥有DataFrame

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_1=iid_2=j的行的最佳方法是什么?以及id_1=j中没有id_2=idf的行?

对于上面的例子,预期的结果是

   id_1  id_2
1     2     3
2     3     4

1 个答案:

答案 0 :(得分:2)

您可以先按行对值进行排序,然后检查重复项:

df[~df.apply(pd.np.sort, axis=1).duplicated(keep=False)]

#   id_1    id_2
#1     2       3
#2     3       4