我必须有一个DF,其中一个仅包含ID#,另一个是更全面的DF,其中包含姓名,薪水,年龄和ID#。
df1看起来像这样
Name Salary ID Age City
Sam 52000 542 52 NYC
Bob 15000 451 21 LA
Sam 72000 556 21 SF
其中df 2的ID号是这样的
Index 1 2 3 4
a 542 352 581 521
b 451 215 556 451
c 540 332 511 121
d 451 515 156 951
注意一些ID#收获,这是预期的
如何获取df2,但仅将其替换为名称(有些重复,我不想删除它们)
我的目标是制作一个新的df3
df3
Index 1 2 3 4
a Sam Bill Le Sam
b Mike Jane Kevin Le
c Jame Kerry David Mike
d Andy Steve Jane Andy
(请注意我的示例ID#与名称不匹配,请原谅我)
答案 0 :(得分:1)
您可以先构建一个查询字典,然后使用applymap
name_map = df.set_index('ID')['Name'].to_dict()
df2.applymap(name_map.get)
1 2 3 4
0 Sam None None None
1 Bob None Sam Bob
2 None None None None
3 Bob None None None