You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据另一Pandas DataFrame的匹配值条件替换指定列值

解法

方法1:映射替换(最高效,推荐)

利用col1值唯一的特性,先构造df2中col1到col2的映射关系,直接替换df1的col2值:

import pandas as pd
# 构造映射字典并赋值
df1['col2'] = df1['col1'].map(df2.set_index('col1')['col2'])

执行后输出df1即可得到预期结果:

col1 col2
0     1    x
1     2    y
2     3    z

方法2:左连接合并

如果df1除了col1、col2外还有其他需要保留的列,也可以通过左连接实现匹配:

# 基于col1做左连接,用df2的col2覆盖原有值
df1 = df1[['col1']].merge(df2, on='col1', how='left')

注意事项

如果df1中存在df2没有的col1值,上面两种方法都会将对应col2赋值为NaN,如果需要保留df1原有的col2值,可以修改第一种方法的代码:

df1['col2'] = df1['col1'].map(df2.set_index('col1')['col2']).fillna(df1['col2'])

内容的提问来源于stack exchange,提问作者edn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 16:15:03