使用Pandas删除前9行失败,首行仍保留的问题求助
解决Pandas删除数据框前9行后首行仍保留的问题
问题分析
你遇到的问题大概率是读取Excel时的索引匹配问题,或是drop方法的使用方式不够直接导致的。直接用df1.drop(df1.index[0:9])有时会因为索引异常(比如读取时默认将Excel第一行设为表头,实际要删除的行是表头之外的前9行)而失效。
两种可行解决方案
方案1:读取Excel时直接跳过前9行(推荐)
在read_excel中使用skiprows参数,直接跳过Excel里的前9行,避免后续删除操作的麻烦:
import pandas as pd import sys # 需导入sys模块,否则sys_folder会报错 df1 = pd.read_excel(str(sys_folder) + "Italy_SS304.xlsx", skiprows=9) df1.drop(df1.columns[1:3], axis=1, inplace=True) print(df1)
方案2:用iloc直接切片替代drop
如果必须先完整读取Excel再删除,用iloc切片更直观可靠,直接取第9行及之后的所有数据(索引从0开始):
import pandas as pd import sys df1 = pd.read_excel(str(sys_folder) + "Italy_SS304.xlsx") df1 = df1.iloc[9:] # 替代drop操作,直接保留第9行之后的内容 df1.drop(df1.columns[1:3], axis=1, inplace=True) print(df1)
内容的提问来源于stack exchange,提问作者Prasad Mahurkar
相关产品推荐
相关产品推荐

