Neil
Neil

Reputation: 8247

How to add values to the pandas dataframe coulmn depending upon value of column in other dataframe

I have pandas dataframe somthing like this. This dataframe contains unique user_id and corresponding user-name

df

user_id    user_name
  1          Jack
  2          Neil
  3          Peter
  4          Smith
  5          Neev

And I have second dataframe something like this

 df1

 user_id     item_id      user_name 
   1           23          Null   
   1           24          Null
   2           34          Null
   3           35          Null
   5           45          Null

I want to fill user_name column above from the 1st dataframe. So,where user_id is matched it should enter corresponding user_name in that position.

So it should look like this..

df1
user_id     item_id      user_name 
   1           23          Jack
   1           24          Jack
   2           34          Neil
   3           35          Peter
   5           45          Neev

I am doin following in python

  b = df.user_name[df['user_id'].isin(df1['user_id'])]
  df1['user_name'] = b

But,It drops duplicates. I don't want to do that. Please help.

Upvotes: 1

Views: 49

Answers (1)

Bob Baxley
Bob Baxley

Reputation: 3751

Use merge:

In [299]:
df1[['user_id','item_id']].merge(df,on='user_id')

Out[299]:
user_id item_id user_name
0   1   23  Jack
1   1   24  Jack
2   2   34  Neil
3   3   35  Peter
4   5   45  Neev

Upvotes: 3

Related Questions