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

Asked By: HimanAB



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
Answered By: jezrael
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.