假设我有以下数据框:
table_a = pandas.DataFrame({ 'employee' : ['a','b','c','d','e','f'], 'department' : ['developer', 'test engineer', 'network engineer', 'manager', 'hr','intern']})
dept_mapping = pandas.DataFrame({'department':['developer','test engineer','network engineer','manager','hr', 'intern'], 'engineer' : [1,1,1,0,0,0], 'management' : [0,0,0,1,1,0], 'intern' : [0,0,0,0,0,1]})
如何在table_a中创建一个包含对应的general_department值的新列。即:
table_a = pd.DataFrame({ 'employee' : ['a','b','c','d','e','f'], 'department' : ['developer', 'test engineer', 'network engineer', 'manager', 'hr','intern'], 'general department' : ['engineer', 'engineer', 'engineer', 'management', 'management' ,'intern' ]})
答案 0 :(得分:2)
您可以使用idxmax
在axis=1
上尝试series.map()
:
table_a['general department'] = table_a['department'].map(
dept_mapping.set_index('department').idxmax(1))
print(table_a)
employee department general department
0 a developer engineer
1 b test engineer engineer
2 c network engineer engineer
3 d manager management
4 e hr management
5 f intern intern