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

如何基于Part Name匹配大小数据集Sheet并生成指定合并表?

问题

如何基于首列公共条目(Part Name/Part Number),从大数据集Sheet中提取对应数据匹配到小数据集Sheet,生成包含小数据集全部列+大数据集指定列的结果?

现有两张Sheet:

  • Sheet1:全量Part数据,列包括Part Name、Sequence、Due Date、quantity
  • Sheet2:Part子集(列名Part Number与Sheet1的Part Name对应),其余列包括Issue、error、quality、supervisor、Line No.
  • 需求:将Sheet2中每个Part匹配Sheet1的Sequence、Due Date、quantity,生成合并后的数据集,兼容两边存在互不存在Part的情况(不匹配的字段留空)
解决方案:Python Pandas实现

Pandas适合处理数千条规模的表格数据,通过**左连接(Left Join)**可以高效完成匹配需求,步骤如下:

1. 安装依赖(若未安装)

pip install pandas openpyxl

2. 代码实现

import pandas as pd

# 读取Excel中的两个Sheet(替换为你的实际文件名)
df_sheet1 = pd.read_excel("parts_data.xlsx", sheet_name="Sheet1")
df_sheet2 = pd.read_excel("parts_data.xlsx", sheet_name="Sheet2")

# 重命名Sheet1的Part Name列,与Sheet2的Part Number统一列名,便于匹配
df_sheet1 = df_sheet1.rename(columns={"Part Name": "Part Number"})

# 执行左连接:保留Sheet2所有行,匹配Sheet1的指定字段
merged_df = pd.merge(
    df_sheet2,
    df_sheet1[["Part Number", "Sequence", "Due Date", "quantity"]],
    on="Part Number",
    how="left"
)

# 将NaN替换为空字符串(可选,根据需求调整)
merged_df = merged_df.fillna("")

# 输出结果到新Excel文件
merged_df.to_excel("merged_parts_result.xlsx", sheet_name="Merged Data", index=False)

# 打印结果验证
print(merged_df)

3. 关键说明

  • 左连接(how="left"):确保Sheet2的所有行都被保留,Sheet1中不存在的Part对应的字段会自动留空(或显示NaN,可通过fillna("")转为空字符串)
  • 代码仅匹配需要的Sequence、Due Date、quantity三列,避免冗余数据
  • 处理数千条数据时,Pandas的效率远高于手动公式匹配
期望输出结果
Part NumberIssueerrorqualitysupervisorLine No.SequenceDue Datequantity
Z610.029408618OKAB12116-Mar97
90720.061354664OKAB23323-Mar51
B120.209159753OKAD23226-Mar95
O121.50.862573414UIAD24429-Mar28
ACF20.403823252OKGY15420-Mar70
A130.452562474OKNP7111-Mar88
H6910.327276608OKTV8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 01:52:02