大熊猫:将列名称从特定表映射到另一表中的行

时间:2020-05-09 18:08:49

标签: python pandas

假设我有以下数据框:

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'  ]})

1 个答案:

答案 0 :(得分:2)

您可以使用idxmaxaxis=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