如何根据其他数据帧中列的值向pandas dataframe coulmn添加值

时间:2016-01-29 01:59:34

标签: pandas

我有像这样的pandas数据帧。此数据框包含唯一的user_id和相应的user-name

df

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

我有第二个像这样的数据框

 df1

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

我想从第一个数据框填充上面的user_name列。因此,在user_id匹配的位置,它应该在该位置输入相应的user_name

所以看起来应该是这样......

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

我在python中跟随

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

但是,它会重复。我不想那样做。请帮忙。

1 个答案:

答案 0 :(得分:2)

使用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