Search code examples
pandasdataframeisin

Check if a column's value exist in previous columns


I have a dataframe as below,

d = {'Person1': ['Apple', 'Mango'], 'Person2': ['Orange', 'Apple'],  'Person3': ['Orange', 'Apple'], 'Person4': ['Orange', 'Apple'], 'Person5': ['Watermelon', 'Mango']}

df1= pd.DataFrame(data= d)

    Person1 Person2 Person3 Person4 Person5

0    Apple  Orange  Orange  Orange  Watermelon

1    Mango   Apple  Apple   Apple   Mango

I want to check if a person has the same fruit and keep the value if no match is found,

     Person1 Person2 Person3 Person4 Person5

 0   Apple   Orange  True    True    Watermelon

 1    Mango   Apple  True    True    True

Solution

  • With a little help of numpy you can do:

    import numpy as np
    
    for i in range(len(df1)):
            df1.iloc[i, :] = np.where(df1.iloc[i, :].duplicated() == False, df1.iloc[i, :], True)
    

    The output will be:

      Person1 Person2 Person3 Person4     Person5
    0   Apple  Orange    True    True  Watermelon
    1   Mango   Apple    True    True        True