HimanUCC HimanUCC - 3 months ago 10
Python Question

Check if a row in one data frame exist in another data frame

I have a data frame A like this:

enter image description here

And another data frame B which looks like this:

enter image description here

I want to add a column 'Exist' to data frame A so that if User and Movie both exist in data frame B then 'Exist' is True, otherwise it is False.
So A should become like this:
enter image description here

Answer

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
Comments