2017-05-13 6 views
1
によって同じ値を持つ行を削除

入力:二つの列がパンダ

S T W  U 
0 A A 1 Undirected 
1 A B 0 Undirected 
2 A C 1 Undirected 
3 B A 0 Undirected 
4 B B 1 Undirected 
5 B C 1 Undirected 
6 C A 1 Undirected 
7 C B 1 Undirected 
8 C C 1 Undirected 

出力:列SとT、行(0,4,8)について

S T W  U 
1 A B 0 Undirected 
2 A C 1 Undirected 
3 B A 0 Undirected 
5 B C 1 Undirected 
6 C A 1 Undirected 
7 C B 1 Undirected 

が同じ値を有します。私はこれらの行を削除したい。

しよう:

を私は結果を得ることができるか、df.drop_duplicates(['S','T']を使用したが、失敗しました。

答えて

3

あなたはboolean indexing必要があります。

print (df['S'] != df['T']) 
0 False 
1  True 
2  True 
3  True 
4 False 
5  True 
6  True 
7  True 
8 False 
dtype: bool 

df = df[df['S'] != df['T']] 
print (df) 
    S T W   U 
1 A B 0 Undirected 
2 A C 1 Undirected 
3 B A 0 Undirected 
5 B C 1 Undirected 
6 C A 1 Undirected 
7 C B 1 Undirected 

またはquery

df = df.query("S != T") 
print (df) 
    S T W   U 
1 A B 0 Undirected 
2 A C 1 Undirected 
3 B A 0 Undirected 
5 B C 1 Undirected 
6 C A 1 Undirected 
7 C B 1 Undirected