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

Python实现Excel转DataFrame:删除无用顶行及无有效数据的列

首先安装依赖库:

pip install pandas openpyxl

场景1:已知有效数据的行范围,直接指定参数读取

如果你清楚高亮有效数据的起始行位置,可直接通过read_excel的内置参数过滤不需要的内容:

import pandas as pd

df = pd.read_excel(
    "test_data.xlsx",
    usecols=lambda col_idx: col_idx >= 3, # 跳过索引为0/1/2的A/B/C三列
    skiprows=4, # 此处数值替换为你实际需要跳过的无效表头行数
    engine="openpyxl"
)

# 清理全空的行和列
df = df.dropna(how="all").dropna(axis=1, how="all")

场景2:需要动态识别高亮单元格读取数据

如果需要精准提取所有高亮单元格对应的数据,可借助openpyxl判断单元格填充色后再构建DataFrame:

import pandas as pd
from openpyxl import load_workbook

# 加载Excel文件
wb = load_workbook("test_data.xlsx", data_only=True)
ws = wb.active # 若读取指定工作表,可替换为 wb["你的工作表名称"]

valid_data = []
# 遍历表格行
for row in ws.iter_rows(values_only=False):
    row_values = []
    has_highlight = False
    # 跳过A/B/C三列,从第4列开始读取
    for cell in row[3:]:
        # 判断单元格是否为黄色高亮,其他颜色可替换为对应色值
        if cell.fill.start_color.index == "FFFFFF00":
            has_highlight = True
        row_values.append(cell.value)
    # 仅保留包含高亮单元格的行
    if has_highlight:
        valid_data.append(row_values)

# 转换为DataFrame,如有固定表头可通过columns参数传入列名
df = pd.DataFrame(valid_data)
# 清理全空的行和列
df = df.dropna(how="all").dropna(axis=1, how="all")

注意事项

  • 若你的高亮填充色不是默认黄色,可打印对应高亮单元格的cell.fill.start_color.index属性获取色值,替换代码中的判断条件即可
  • 若有效数据带有表头,可在创建DataFrame时补充columns=["列名1","列名2",...]参数自定义列名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:24:03