HimanAB
HimanAB

Reputation: 2573

Check if rows in one dataframe exist in another dataframe

I have a data frame A dfA like this:

enter image description here

And another data frame B dfB which looks like this:

enter image description here

I want to add a column 'Exist' to dfA so that if User and Movie both exist in dfB then 'Exist' is True, otherwise it is False. So dfA should become like this:

enter image description here

Upvotes: 57

Views: 66876

Answers (1)

jezrael
jezrael

Reputation: 863631

You can use merge with parameter indicator, then remove column Rating and use numpy.where:

df = pd.merge(df1, df2, on=['User','Movie'], how='left', indicator='Exist')
df.drop('Rating', inplace=True, axis=1)
df['Exist'] = np.where(df.Exist == 'both', True, False)
print (df)
   User  Movie  Exist
0     1    333  False
1     1   1193   True
2     1      3  False
3     2    433  False
4     3     54   True
5     3    343  False
6     3     76   True

Upvotes: 70

Related Questions