Pandas。将某一特定表的列名映射到另一表中的某一行

问题描述 投票:0回答:1

比方说,我有以下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'  ]})
python pandas
1个回答
2
投票

你可以试试 idxmax 关于 axis=1series.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
© www.soinside.com 2019 - 2024. All rights reserved.