如何使用Python字典匹配替换Excel指定列的文本为对应数字编码?
Excel文本列批量转数字编码的Python实现方案
前置依赖安装
首先需要安装两个用于Excel处理的Python库,在命令行执行以下命令即可:pip install pandas openpyxl
可直接运行的代码示例
import pandas as pd # 读取原Excel文件,替换为你的实际文件路径 df = pd.read_excel("你的原物品信息文件.xlsx") # -------------------------- # 填入你已整理好的映射字典,此处为示例,替换为你自己的规则 # 注意字典格式为:{文本值: 对应数字编码} dic_type = {"球": 1, "蹦床": 6} dic_color = {"红色": 1, "蓝色": 2} # 其他列的映射字典同理添加 # -------------------------- # 如果你现有的字典是{数字编码:文本值}的结构,先执行字典反转,不需要则删除以下两行 dic_type = {value: key for key, value in dic_type.items()} dic_color = {value: key for key, value in dic_color.items()} # 按列执行文本到编码的替换,注意列名要和Excel里的列名完全一致 df["类型"] = df["类型"].map(dic_type) df["颜色"] = df["颜色"].map(dic_color) # 其他需要替换的列参照上面的写法添加即可 # 导出为新的Excel文件,index=False表示不导出pandas自带的行号 df.to_excel("编码转换后的物品信息.xlsx", index=False)
常见问题说明
- 匹配不到的内容会显示为空值(NaN),如果需要保留原文本,把
map方法替换为replace即可 - Excel的列名、文本内容不要有多余空格、全半角符号差异,否则会导致匹配失败
- Windows系统下文件路径可以用正斜杠
/,或者在路径字符串前加r避免转义问题,比如r"C:\用户\桌面\文件.xlsx"
内容的提问来源于stack exchange,提问作者Lobke de Bruin
相关产品推荐
相关产品推荐

