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

如何用最快方式将一个DataFrame的值替换为另一个DataFrame的值?

问题描述

现有两个DataFrame:
df1结构:

class     val
12        1271
12        1271
34        142
34        142

df2结构:

class  val
12     123
34     141
69     667

需求:将df1的val替换为df2中对应class的val,最终结果如下:

class     val
12        123
12        123
34        141
34        141

你当前用的merge方法可行,但步骤繁琐且不是最优解,最快的实现方式是用map方法:

最优实现(最快)
# 直接通过class映射df2中的val值
df1['val'] = df1['class'].map(df2.set_index('class')['val'])
原理说明
  • df2.set_index('class')['val']生成以class为索引、val为值的Series,本质是键值对结构
  • map方法遍历df1的class列,逐个匹配对应的值替换原val列,全程无中间表生成,操作轻量化
  • 相比merge方法,map避免了表连接、列重命名、删除列等冗余步骤,数据量越大,性能优势越明显
验证结果

执行上述代码后,df1的val列会被正确替换为df2中对应class的数值,与预期结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:25:28