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

Pandas如何正确读取包含合并单元格的Excel文件

Pandas 读取含合并单元格Excel文件解决方案

我正尝试使用Pandas读取一份包含合并单元格的Excel文件,期望得到指定样式的输出结果。目前已知可尝试使用fillna()方法,但该方法存在适配问题:

  • 两个合并单元格之间存在无规律的空行
  • 表格第二列也存在随机空单元格,无法通过该方法得到正确结果

实现方案

不要直接对整表使用ffill()填充,需分列按分组逻辑控制填充范围,避免跨空行、跨合并区间的错误填充,具体代码如下:

import pandas as pd

# 1. 读取Excel文件,openpyxl引擎支持识别xlsx格式的合并单元格
df = pd.read_excel("你的文件路径.xlsx", engine="openpyxl", header=None)

# 2. 处理第一列(一级合并单元格)
# 标记第一列非空位置,给每个合并区间打分组标签
df["group_first"] = df[0].notna().cumsum()
# 仅在同一合并区间内填充,空行会自动断开分组,不会跨空行填充
df[0] = df.groupby("group_first")[0].transform(lambda x: x.ffill())

# 3. 处理第二列(二级合并单元格,存在随机空值)
# 在一级分组的范围内给第二列的合并区间打标签,避免跨一级合并区间填充
df["group_second"] = df.groupby("group_first")[1].transform(lambda x: x.notna().cumsum())
df[1] = df.groupby(["group_first", "group_second"])[1].transform(lambda x: x.ffill())

# 4. 清理临时列,可选删除完全空白的行
df = df.drop(columns=["group_first", "group_second"]).dropna(how="all").reset_index(drop=True)

# 导出结果
df.to_excel("输出文件路径.xlsx", index=False)

适配说明

  • 方案通过分组标记控制填充范围,自动跳过无规律的整行空行,不会出现两个合并单元格跨空行填充的问题
  • 第二列的填充被限制在对应一级合并单元格的范围内,不会将不同一级分类下的第二列内容错误填充,也不会修改本就为空的单元格

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:48:00