繁体   English   中英

如何在熊猫中通过ID将数据框的列值替换为另一个数据框值

[英]How do I replace a dataframe's columns values with another dataframe values by Id in Pandas

有很多类似的问题,我都尝试过,但是它们并没有按照我希望的那样工作。 让我解释:

我有两个数据df1df2 df1形状为(10000,10)df2形状为(6000,3)

样本df1

id      col1   col2    col3
sdfge    0       43     35
fgdge    0       34     353
dfgge   500     434     345
dsggh    43     34       345
bcbnn    23      0       86
gnncn    24      0       868
iopip    0       0       687

样本df2

id      col1   col2  
sdfge    3453     453  
fgdge    23      345   
dsggh    44     357   
iopip    0      886  

现在,我想通过使用df2值(由id连接来替换df1col1col2值)。

使用map

df1['col1'] = (df1['id'].map(df2.set_index('id')['col1'])
                        .fillna(df1['col1'], downcast='infer'))
df1['col2'] = (df1['id'].map(df2.set_index('id')['col2'])
                        .fillna(df1['col2'], downcast='infer'))

print(df1)
      id  col1  col2  col3
0  sdfge  3453   453    35
1  fgdge    23   345   353
2  dfgge   500   434   345
3  dsggh    44   357   345
4  bcbnn    23     0    86
5  gnncn    24     0   868
6  iopip     0   886   687

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM