如何通过将df ID#替换为另一个df的名称来创建新的df?

时间:2019-08-31 22:36:52

标签: python pandas dataframe pandas-groupby

我必须有一个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#与名称不匹配,请原谅我)

1 个答案:

答案 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