使用Python pandas处理Excel时如何按索引删除指定行列
问题原因
pd.read_excel默认会把Excel文件的第一行识别为DataFrame的列名,不属于行数据范围,所以你删除索引0-10行的操作不会触及你要删的那个长标题,才会出现标题留存、只删了其他行的情况。另外你也没有编写删除第一列的相关逻辑。
解决方案
方案1:读入阶段直接处理(更高效,推荐)
读入时直接指定跳过无效行、跳过第一列,一步得到目标格式:
import pandas as pd # skiprows=12:跳过Excel前12行(包含标题行+后面11行无效行),直接把第13行作为表头 # usecols=lambda x: x != 0:跳过第一列(Excel的A列),只保留后续有效列 df = pd.read_excel("AG.xls", sheet_name="AG", skiprows=12, usecols=lambda x: x != 0) print(df)
方案2:读入后按索引删改(和你原有思路一致)
如果需要先读全量数据再处理,可以用以下代码:
import pandas as pd # header=None:读入时不自动识别表头,把所有内容都作为行数据读取 df = pd.read_excel("AG.xls", sheet_name="AG", header=None) # 删除前11行(索引0到10,包含标题行) df = df.drop(range(11)) # 将当前第一行设为新的表头 df.columns = df.iloc[0] # 删除已经用作表头的重复行 df = df.drop(df.index[0]) # 删除第一列(无效索引列) df = df.drop(df.columns[0], axis=1) # 重置行索引,可选操作 df = df.reset_index(drop=True) print(df)
参考样式
原Excel表样式:
目标Excel表样式:
内容的提问来源于stack exchange,提问作者user16993210
相关产品推荐
相关产品推荐

