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

基于匹配列ID合并两个Excel工作表的Python实现求助

Python实现Excel按方括号内ID匹配合并的解决方案

嘿,刚接触Python也不用慌,这个Excel合并需求用pandas库就能轻松搞定,这是Python处理表格数据的神器。我给你一步步讲清楚怎么做:

第一步:先安装必要的库

首先得安装pandas(处理数据)和openpyxl(读写Excel文件),打开命令行运行:

pip install pandas openpyxl

第二步:完整代码实现(带注释)

直接上代码,每一步都给你标清楚作用:

import pandas as pd
import re

# 1. 读取两个Excel文件
# 替换成你实际的文件名哦
df1 = pd.read_excel("追溯报告.xlsx", engine="openpyxl")
df2 = pd.read_excel("结果文件.xlsx", engine="openpyxl")

# 2. 从df1的Column3中提取方括号内的ID(比如从[xyz-5536]A提取xyz-5536)
df1["match_id"] = df1["Column3"].str.extract(r"\[(.*?)\]")

# 3. 从df2的Column1中提取同样的ID(比如从[xyz-5536]A提取xyz-5536)
df2["match_id"] = df2["Column1"].str.extract(r"\[(.*?)\]")

# 4. 按提取的match_id合并两个表格,保留df1的所有行,追加Result1和Result2
merged_df = pd.merge(df1, df2[["match_id", "Result1", "Result2"]], 
                    on="match_id", how="left")

# 5. 删掉临时的match_id列,整理成你要的最终列顺序
final_df = merged_df[["Column1", "Column2", "Column3", "Result1", "Result2"]]

# 6. 把结果保存成新的Excel文件
final_df.to_excel("合并后的追溯报告.xlsx", index=False, engine="openpyxl")

print("合并完成!新文件已生成~")

关键细节说明

  • 正则表达式r"\[(.*?)\]"的作用:专门提取方括号[]中间的内容,.*?会匹配任意字符直到遇到右括号为止,刚好能精准拿到你要的ID。
  • pd.merge的how="left"参数:保证Excel1里的每一行都会保留,不会因为匹配不到而丢失数据(当然你的数据里都是能匹配上的)。
  • 保存时index=False:避免把pandas默认的行号写到Excel里,完全贴合你要的格式。

验证结果

运行完代码后,打开生成的合并后的追溯报告.xlsx,就是你想要的最终格式啦:

Column1 Column2 Column3 Result1 Result2
1 A [xyz-5536]A pass fail
2 B [xyz-5537]B fail pass
3 C [xyz-5538]C pass fail
4 D [xyz-5539]D fail pass

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:48:54