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

多Excel单工作表数据合并:基于非空值填充的单元格整合需求

合并Excel文件并填充空单元格的解决方案

我来帮你搞定这个Excel数据合并的需求——把多个文件里同ID的记录合并,用非空值填充空单元格,用Python的pandas库就能轻松实现,步骤如下:

1. 准备依赖

首先确保你安装了pandas和处理Excel的依赖包,打开终端运行:

pip install pandas openpyxl

2. 编写合并代码

创建一个Python脚本(比如merge_excels.py),把下面的代码放进去,记得替换成你实际的文件路径:

import pandas as pd

# 这里换成你自己的Excel文件路径列表
file_paths = ["Excel1.xlsx", "Excel2.xlsx", "Excel3.xlsx"]

# 批量读取所有Excel文件
data_frames = []
for file in file_paths:
    # 读取文件,默认读取第一个工作表
    df = pd.read_excel(file)
    data_frames.append(df)

# 把所有文件的数据合并到一个DataFrame里
combined_data = pd.concat(data_frames, ignore_index=True)

# 按ID、Name、User分组,对每个属性列提取非空值
# 逻辑是:如果列里有非空值,取第一个;如果全空就留空
merged_data = combined_data.groupby(["ID", "Name", "User"], as_index=False).agg(
    lambda col: col.dropna().iloc[0] if not col.dropna().empty else None
)

# 把合并后的结果保存成新的Excel文件
merged_data.to_excel("合并结果.xlsx", index=False)

3. 代码说明

  • 第一步批量读取所有Excel文件,把它们都转换成pandas的DataFrame格式;
  • concat会把所有数据合并成一个大表,此时同ID的记录会有多条,各自带部分非空值;
  • groupby按照ID、Name、User这些唯一标识字段分组,然后对每个属性列(Prop1、Prop2、Prop3)提取第一个非空值,这样就自动用其他文件里的非空内容填充了空单元格;
  • 最后把处理好的数据保存成新的Excel文件,就是你想要的结果啦。

如果你的文件是CSV格式,只需要把pd.read_excel换成pd.read_csv,to_excel换成to_csv就行,逻辑完全一样。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:29:49