我正在使用pandas并尝试在下面的示例表中填写NewManagerId列。我已经完成了合并,并且列1-4,需要附加第5列,即新的经理ID。 OldManagerId = OldId但随后使用NewId值进行填充。我已经尝试了一些不同的方法并且没有得到这个工作,但我猜想有办法做到这一点。任何建议赞赏!
OldId Username OldManagerId NewId NewManagerId
1234 abc1243 4567 987 (need 654)
4567 def134 8798 654 (need 321)
8798 ghi1494 321 (null)
4687 jkl2957 1234 94 (need 987)
答案 0 :(得分:0)
在你的df的子部分创建一个查找df,我们在这里做的只是选择OldId和NewId列,将索引设置为OldId。然后我们在df OldManagerId值上调用map
,这将执行相应NewId的查找并设置此值:
In [12]:
lookup = df[['OldId', 'NewId']].set_index('OldId')
df['NewManagerId'] = df['OldManagerId'].map(lookup['NewId'])
df
Out[12]:
OldId Username OldManagerId NewId NewManagerId
0 1234 abc1243 4567 987 654
1 4567 def134 8798 654 321
2 8798 ghi1494 NaN 321 NaN
3 4687 jkl2957 1234 94 987
In [59]: