2017-04-23 62 views
0

有数据帧大熊猫:根据他们的无序多列得到唯一的行值

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=jid_2=i没有行df

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

id_1 id_2 
1  2  3 
2  3  4 

回答

2

您可以首先将值按行,排序,然后检查重复:

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

# id_1 id_2 
#1  2  3 
#2  3  4 
+1

谢谢'pd.np.sort'显得非常有用。 – tarashypka