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

如何将多值字典映射至Pandas DataFrame列?

单键多值字典与DataFrame列的映射实现

问题背景

我有一个单键对应多个值的字典,需要将其与DataFrame的列进行映射,实现将列中的值替换为字典中对应的键。

给定字典

Keys_nd_Values = {'ABCD': [223, 343, 432],
                  'ZXS': ['S23', 'GT4','98J']}

原始DataFrame数据

import pandas as pd

df = pd.DataFrame({
    'A': [12525, 14654, 24798, 38945, 46456, 'AD545', 'A5D66'],
    'B': ['1FWE23', 14654, 24798, 38945, 46485, 45346, 'A5D66'],
    'C': [223, 'S23', 223, 223, 'GT4', '98J', 432]
})

解决方案

核心思路是先反转字典,将原字典中的每个值映射到对应的键,再用这个反转后的字典对DataFrame的目标列进行替换。

  1. 构建值到键的反转映射字典:
reverse_map = {v: k for k, vals in Keys_nd_Values.items() for v in vals}

该推导式会遍历原字典的每个键值对,把每个值关联到对应键,最终得到:{223: 'ABCD', 343: 'ABCD', 432: 'ABCD', 'S23': 'ZXS', 'GT4': 'ZXS', '98J': 'ZXS'}

  1. 对DataFrame的C列进行映射替换:
df['C'] = df['C'].map(reverse_map)

最终结果

执行后得到的DataFrame如下:

A        B     C
0   12525  1FWE23  ABCD
1   14654   14654   ZXS
2   24798   24798  ABCD
3   38945   38945  ABCD
4   46456   46485   ZXS
5  AD545   45346   ZXS
6  A5D66   A5D66  ABCD

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:50:37