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

如何用Python按UniqueID从XLSX拉取数据并写入同列名XLSX文件

按唯一标识同步Excel列数据的Python实现

需求说明:
编写Python脚本,基于两个XLSX文件,以Column_A作为唯一标识(UniqueID),将XLSX2中Column_B的数据全量同步到XLSX1对应的Column_B中。

初始数据状态:

XLSX1 XLSX2
Column_A Column_B Column_A Column_B
A A 21
B B 25
C C 2
D D 5
E E 9
F F 10
G G 15
H H 16

执行脚本后XLSX1目标状态:

XLSX1 XLSX2
Column_A Column_B Column_A Column_B
A 21 A 21
B 25 B 25
C 2 C 2
D 5 D 5
E 9 E 9
F 10 F 10
G 15 G 15
H 16 H 16


解决方案

使用pandas库高效处理Excel数据,步骤如下:

1. 依赖安装

首先安装所需库:

pip install pandas openpyxl

2. 完整脚本实现

import pandas as pd

# 替换为你的实际文件路径
xlsx1_path = "XLSX1.xlsx"
xlsx2_path = "XLSX2.xlsx"
output_path = "updated_XLSX1.xlsx"

# 读取两个Excel文件
df1 = pd.read_excel(xlsx1_path, engine="openpyxl")
df2 = pd.read_excel(xlsx2_path, engine="openpyxl")

# 以Column_A为键合并数据,保留XLSX1的所有行
merged_df = df1.merge(df2[["Column_A", "Column_B"]], on="Column_A", how="left", suffixes=('', '_from_xlsx2'))

# 替换原Column_B为XLSX2的对应值,清理临时列
merged_df["Column_B"] = merged_df["Column_B_from_xlsx2"]
merged_df.drop(columns=["Column_B_from_xlsx2"], inplace=True)

# 保存处理后的文件
merged_df.to_excel(output_path, index=False, engine="openpyxl")

print(f"数据同步完成,结果已保存至 {output_path}")

3. 代码说明

  • 文件读取:通过pd.read_excel读取XLSX文件,指定openpyxl引擎支持.xlsx格式。
  • 数据合并:采用左连接(how='left')保证XLSX1的所有行都被保留,仅匹配XLSX2中对应Column_A的Column_B数据。
  • 列值替换:将合并后获取的XLSX2数据覆盖XLSX1原Column_B,删除冗余的临时列。
  • 结果保存:将处理后的数据导出为新Excel文件,index=False避免生成多余的索引列。

注意事项

  • 确保Column_A在两个文件中是唯一标识,无重复值,否则可能导致匹配结果异常。
  • 若需直接覆盖原XLSX1文件,可将output_path设置为xlsx1_path,但建议先备份原文件。
  • 若Excel包含多个工作表,需在pd.read_excel中添加sheet_name参数指定目标工作表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 16:40:27