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

2024-06-09 06:56:56 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Tags: 方法idpandas管理器usernameneed建议办法
1条回答
网友
1楼 · 发布于 2024-06-09 06:56:56

在df的子部分上创建一个查找df,我们在这里所做的只是选择OldId和NewId列,将索引设置为OldId。然后对df OldManagerId值调用^{},这将执行相应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]:

相关问题 更多 >