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

pandas读取Excel时如何删除顶部多余日期表头行

问题原因

你用df.iloc[2:]删不掉最顶部带Date/Time:13/06/2022的行,核心原因是这行根本不属于DataFrame的数据行——pandas默认会把Excel的第一行识别为DataFrame的列名(表头),你切片操作只处理数据行,自然碰不到作为列名存在的这行内容。

推荐方案:读取文件时直接跳过冗余行

最省事的做法是不要等读完再清理,在read_excel阶段就指定正确的表头位置,一步读入干净数据:

import pandas as pd
# 前3行是多余内容,第4行(索引从0开始计数为3)是真正的业务表头
df = pd.read_excel('output/tracker.xlsx', header=3)

如果担心冗余行识别不准,也可以显式指定跳过前3行,再把后续第一行设为表头:

df = pd.read_excel('output/tracker.xlsx', skiprows=3, header=0)

这个写法逻辑很明确:先跳过Excel最开头的3行无效内容,把接下来的第一行作为列名,剩余内容作为数据行加载,读出来的结果直接可用,不需要额外做行删除操作。

事后修复方案(已读入DataFrame的场景)

如果不想重新读取文件,也可以在现有DataFrame基础上做两步修正:

  1. 先把真正的表头行设置为新的列名
  2. 再删除前面所有无效数据行,重置索引

参考代码:

# 将索引为2的Site ID行设置为新列名
df.columns = df.iloc[2]
# 删除前3行无效数据(索引0、1、2),重置索引
df = df.iloc[3:].reset_index(drop=True)
# 可选清理:删除全为空值的无效列
df = df.dropna(axis=1, how='all')

提示:优先选择读取阶段处理的方案,比事后清理效率更高,也不容易出现行号计数错误、列名不匹配的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 10:18:18