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

基于Pandas实现Excel新旧编码批量匹配转换的自动化方案问询

高效实现Excel跨Sheet编码匹配方案

针对你需要将Sheet1的Old_Codes与Sheet2的Old_Codes匹配,并填充对应New_Codes的需求,这里提供两种比手动操作简洁高效的Pandas实现方案,完全替代文本分列、手动筛选替换的繁琐流程:


方案一:使用merge(通用场景,支持重复编码)

如果Sheet2中存在重复的Old_Codes值,merge会自动保留所有匹配结果,适合需要处理多对多映射的场景:

import pandas as pd

# 读取Excel文件的两个工作表
df_sheet1 = pd.read_excel("你的文件路径.xlsx", sheet_name="Sheet1")
df_sheet2 = pd.read_excel("你的文件路径.xlsx", sheet_name="Sheet2")

# 左连接匹配,仅保留Sheet2中需要的编码列,避免引入无关数据
df_sheet1 = df_sheet1.merge(
    df_sheet2[["Old_Codes", "New_Codes"]],
    on="Old_Codes",
    how="left"  # 保证Sheet1的所有行都被保留,未匹配的New_Codes显示为NaN
)

# 将结果保存回Excel(可选择覆盖原文件或保存为新文件)
df_sheet1.to_excel("更新后的文件.xlsx", sheet_name="Sheet1", index=False)

方案二:使用map(高效单映射场景)

如果Sheet2中的Old_Codes是唯一值(每个旧编码对应唯一新编码),map的执行效率更高,代码也更简洁:

import pandas as pd

df_sheet1 = pd.read_excel("你的文件路径.xlsx", sheet_name="Sheet1")
df_sheet2 = pd.read_excel("你的文件路径.xlsx", sheet_name="Sheet2")

# 将Sheet2转换为"旧编码:新编码"的字典
code_mapping = df_sheet2.set_index("Old_Codes")["New_Codes"].to_dict()

# 直接为Sheet1添加New_Codes列并完成映射
df_sheet1["New_Codes"] = df_sheet1["Old_Codes"].map(code_mapping)

# 保存结果
df_sheet1.to_excel("更新后的文件.xlsx", sheet_name="Sheet1", index=False)

优势说明

  • 两种方案都能一键完成批量匹配,避免手动操作的失误,数据量越大效率提升越明显
  • 未匹配到的编码会自动填充为NaN,方便后续快速识别处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 11:57:25