Remove rows that two columns have the same values by pandas
pandas
Solution
You need `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
Or `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
Problem
Input: ``` 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 ``` Output: ``` 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 ``` For column S and T ,rows(0,4,8) have same values. I want to drop these rows. Trying: I used `df.drop_duplicates(['S','T']` but failed, how could I get the results.