pandas如何对不同长度DataFrame做列匹配后为人员表新增薪资列
解决方案
核心思路是通过pandas的merge方法实现双字段同时匹配,一次关联就能得到对应的薪资数据:
- 首先确保你已经导入pandas库:
import pandas as pd
- 执行双字段匹配关联,代码如下:
# 按两个对应字段匹配岗位表和人员表 person_with_salary = person_df.merge( job_df, left_on = ["Level1", "Position1"], right_on = ["Role", "Position"], how = "left" ) # 可选:删除匹配后多余的Role、Position字段,只保留需要的信息 person_with_salary = person_with_salary.drop(columns = ["Role", "Position"])
- 运行结果说明:
最终得到的person_with_salary会在原有人员表的基础上新增Salary列,示例里的两条数据匹配结果如下:
- John匹配后薪资为2
- Shawn匹配后薪资为1
如果你只需要保留两个表都匹配成功的记录,把
how="left"改成how="inner"即可,未匹配成功的人员会被过滤。
内容的提问来源于stack exchange,提问作者jungee
相关产品推荐
相关产品推荐

