如何用另一个dataframe值替换数据框中的列值

2024-10-01 15:39:12 发布

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

有很多类似的问题,我都试过了,但都没有达到我想要的效果。让我解释一下:

我有两个数据帧df1df2df1的形状是(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中的值替换col1col2中的值(通过id连接)


Tags: 数据idcol2col3col1形状df1样本
1条回答
网友
1楼 · 发布于 2024-10-01 15:39:12

使用^{}

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

相关问题 更多 >

    热门问题