比方说,我有以下DataFrames,如何在table_a中创建一个新的列,其中包含相应的general_department值。
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' ]})
你可以试试 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