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

如何在Pandas DataFrame中撤销字典映射的替换操作?

Pandas数字转原文本:无需创建反转字典的方法

场景回顾

你通过以下代码将DataFrame的文本列转为数字:

import pandas as pd
x = pd.DataFrame({'col1':['one','two','three','four'],'col2':[5,6,7,8],'col3':[9,10,11,12]})
mydict = {'one': 1, 'two': 2, 'three': 3, 'four': 4}
x.replace({'col1':mydict}, inplace= True)

现在需要将模型返回的数字列col1转回原文本格式,且希望避免创建单独的反转字典。

解决方案

方法1:使用map结合lambda直接匹配值找键

利用原字典的键值对遍历,通过数字值匹配对应的文本键:

x['col1'] = x['col1'].map(lambda num: next(k for k, v in mydict.items() if v == num))

由于你的字典值是唯一的,next()会精准返回对应的文本键,不会出现匹配冲突。

方法2:在replace中动态生成反转映射

如果偏好继续使用replace方法,可以在参数中临时生成反转映射,无需单独定义反转字典变量:

x.replace({'col1': {v: k for k, v in mydict.items()}}, inplace=True)

这种方式仅在调用replace时临时生成反转结构,不会额外占用全局变量。

效果验证

执行上述任一方法后,DataFrame将恢复为目标格式:

col1col2col3
one59

内容的提问来源于stack exchange,提问作者David Siret Marquès

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 19:37:14