python pandas - 在将键与另一个数据框匹配后创建一个列

python pandas - creating a column after matching keys with another data frame

我有两个数据框。为了简单起见,我将在这里提供两个虚拟数据框。

A = pd.DataFrame({'id':[1,2,3], 'name':['a','b','c']})
B = pd.DataFrame({'id':[1,1,1,3,2,3,1]})

现在,我想在数据框 B 上创建一个名称与 ID 匹配的列。 在这种情况下,我的期望输出将是:

B = pd.DataFrame({'id':[1,1,1,3,2,3,1], 'name':['a','a','a','c','b','c','a'})

我曾尝试使用 .applylambda 或尝试提出其他想法,但无法实现。

感谢您的帮助。

pd.merge.map 我们使用您的 id 列作为键和 return 您目标数据帧上的所有匹配值。

df = pd.merge(B,A,on='id',how='left')

#or

B['name'] = B['id'].map(A.set_index('id')['name'])

print(df)

   id name
0   1    a
1   1    a
2   1    a
3   3    c
4   2    b
5   3    c
6   1    a

print(B)

   id name
0   1    a
1   1    a
2   1    a
3   3    c
4   2    b
5   3    c
6   1    a