我有像这样的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
但是,它会重复。我不想那样做。请帮忙。
答案 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