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

Pandas如何根据映射表将值映射到DataFrame多个列中

Pandas按映射表替换列值实现方法

首先复现题目中的两个测试DataFrame:

import pandas as pd

# 初始df1
df1 = pd.DataFrame({
    'id1': [1, 4, 2],
    'id2': [3, 2, 1]
})

# 数值-字符映射表df2
df2 = pd.DataFrame({
    'id3': [1, 2, 3, 4],
    'id4': ['a', 'b', 'c', 'd']
})

实现不需要写循环、不需要做多表关联,两步即可完成:

  • 先把映射表df2转成{数值: 对应字符}格式的字典,作为统一替换规则
  • 用替换规则对df1中需要处理的id1、id2列做批量值替换

对应实现代码:

# 生成映射字典
value_map = df2.set_index('id3')['id4'].to_dict()

# 批量替换两列的数值
df1[['id1', 'id2']] = df1[['id1', 'id2']].replace(value_map)

执行完成后打印df1,即可得到目标结果:

id1 id2
0   a   c
1   d   b
2   b   a

补充说明:如果是单列替换的场景,用df['列名'].map(value_map)也能达到同样效果,多列批量替换时直接用replace传入映射字典的写法更简洁,执行效率也更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:54:21