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.

Original source

Related problems