Remove rows that two columns have the same values by pandas

Viewed 38828

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.

2 Answers

We can achieve in this way also. Generally, I use this method to do the same.

For Example :

    import pandas as pd
    #creating temp df for example 

    details = {
        'Name' : ['Ankit', 'Aishwarya', 'Shaurya', 'Shivangi', 'Priya', 'Swapnil'],
        'Nick_Name' : ['Ankit', 'Aish', 'Shaurya', 'Shiv', 'Priya', 'Lucky'],
    }
      
    # creating a Dataframe object 
    df = pd.DataFrame(details, columns = ['Name', 'Nick_Name',],index = ['a', 'b', 'c', 'd', 'e', 'f'])
      
    
    index_names = df[ (df['Name'] == df['Nick_Name'])].index
    
    df.drop(index_names, inplace = True)
    print(df)
Related