熊猫:匹配一组列并填充第三个值

时间:2015-03-19 18:14:05

标签: python join pandas

我正在使用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)

1 个答案:

答案 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]: