2017-06-02 6 views

答えて

2

は、あなたがapplysortedを必要とboolean indexing~反転ブールマスクによってフィルターでduplicatedで重複を取得するようだ:

cols = ['Source','Target'] 
df = df[~df[cols].apply(sorted, axis=1).duplicated()] 
print (df) 
    Source Target 
0  A  A 
1  A  B 
2  A  C 
4  B  C 
7  B  B 

numpy.sortのもう一つの解決策:

cols = ['Source','Target'] 
df = df[~pd.DataFrame(np.sort(df[cols], axis=1), columns=cols).duplicated()] 
print (df) 
    Source Target 
0  A  A 
1  A  B 
2  A  C 
4  B  C 
7  B  B 

別の解決策だけで2列の場合drop_duplicates

df = df.apply(sorted, axis=1).drop_duplicates() 
print (df) 
    Source Target 
0  A  A 
1  A  B 
2  A  C 
4  B  C 
7  B  B 
関連する問題