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

如何在Python中读取Excel文件到Pandas DataFrame时忽略隐藏行

解决读取Excel时忽略隐藏行到Pandas DataFrame的问题

我之前在处理Excel数据时,碰到了需要跳过隐藏行读取数据到Pandas DataFrame的需求,试了好几种方法都没搞定,折腾了一阵终于找到可行的方案,分享给有同样困扰的朋友:

核心思路是先用openpyxl解析Excel文件,找出所有隐藏行的索引,再用Pandas读取完整数据后,筛选出非隐藏行的内容。

完整代码实现

# 替换为你的Excel文件路径
file_path = 'text.xlsx'

import pandas as pd
import openpyxl

# 加载工作簿并指定目标工作表
wb = openpyxl.load_workbook(file_path)
ws = wb['Table1']  # 这里替换成你实际的工作表名称

# 遍历行维度,收集所有隐藏行的索引
hidden_rows = []
for row_num, row_dimension in ws.row_dimensions.items():
    if row_dimension.hidden:
        hidden_rows.append(row_num)

# 打印隐藏行数量,方便验证
print(f"检测到 {len(hidden_rows)} 行隐藏数据")

# 用Pandas读取整个Excel文件
df = pd.read_excel(file_path)

# 可选:调整DataFrame索引以匹配Excel的行号(按需使用)
# 比如Excel表头在第1行,数据从第2行开始,Pandas默认索引从0开始,这时候可以加2让索引对应Excel行号
# df.index += 2

# 计算非隐藏行的索引集合
unhidden_row_indices = list(set(df.index) - set(hidden_rows))

# 筛选得到仅包含非隐藏行的新DataFrame
newdf = df.loc[unhidden_row_indices]

# 查看结果形状,确认数据是否正确
print(newdf.shape)

关键说明

  • 记得把代码中的'Table1'替换成你实际要读取的工作表名称
  • 索引调整的那一行(df.index += 2)需要根据你的Excel结构决定是否启用:如果Excel的行号和Pandas读取后的索引不对应,就需要调整,确保隐藏行的索引能和DataFrame的索引匹配
  • 最后通过集合的差集运算快速筛选出非隐藏行,再用loc方法提取目标数据,这种方式简单高效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 15:17:41