所以我有两个数据框一个是工作信息,另一个是人名和头衔,如下所示
jobTitle = {'Role': ['Level1','Level2','Level3'],
'Position': ['Manager','Engineer','Assistant']
'Salary': [1,2,3]
}
job_df = pd.DataFrame(jobTitle,columns=['Role','Position','Salary'])
person = {'Name':['John','Shawn'],
'Level1':['Level2','Level1'],
'Position1': ['Engineer','Manager']}
person_df = pd.DataFrame(person,columns=['Name','Level1','Position1'])
我想将每个人的角色和职位与jobTitle数据框进行比较,并在person中添加一个包含薪水的新列
尝试使用pd.DataFrame.merge
:
>>> person_df.merge(job_df, left_on=['Level1', 'Position1'], right_on=['Role', 'Position']).drop(job_df.columns[:2], axis=1)
Name Level1 Position1 Salary
0 John Level2 Engineer 2
1 Shawn Level1 Manager 1
>>>