使用Pandas删除Excel文件前两行未生效的问题该如何修正
问题原因
你当前代码失效的核心原因是pandas读取Excel时默认将文件第一行识别为表头(即DataFrame的列名),你调用drop([0,1])仅能删除DataFrame的前两行数据,无法修改已经被识别为列名的「Title Here」相关内容。
最优解决方案
直接在读取文件时跳过前2行,将真正的表头行(sort order所在行)设置为列名,修改后的代码如下:
import pandas as pd path = 'C:\\Temp\\' filename = 'datafile1.xlsx' # 新增skiprows=2参数,跳过Excel前2行,自动将第3行设为列名 df = pd.read_excel(path + filename, sheet_name=1, skiprows=2) print(df.head())
备用方案(无需重新读取文件)
如果已经完成文件读取不想重新加载,可手动调整表头并删除无效行:
import pandas as pd path = 'C:\\Temp\\' filename = 'datafile1.xlsx' df = pd.read_excel(path + filename, sheet_name=1) # 将第3行(索引为2)设为新的列名 df.columns = df.iloc[2] # 删除前3行无效内容(前2行空内容+已经被设为表头的第3行) df = df[3:] # 重置行索引避免序号混乱 df = df.reset_index(drop=True) print(df.head())
以上两种方案执行后都可以实现预期效果:sort order对应行作为表头,Title Here相关内容完全删除,首行数据为FMN对应的行。
内容的提问来源于stack exchange,提问作者Kev
相关产品推荐
相关产品推荐

