pandas读取Excel文件时如何不使用列名跳过初始多列?
解决方案
pandas 的 read_excel 没有原生提供和 skiprows 直接对应的 skipcols 参数,你可以用以下两种方案实现跳过开头4列的需求,无需提前指定列名或手动统计总列数:
方案1:读取后按列索引切片(绝大多数场景推荐)
读取完成后直接通过 iloc 按位置截取列即可,写法最简单:
# 跳过开头4行后,截取所有行、第5列及之后的所有内容(索引从0开始计数) df1 = pd.read_excel(r"file_name.xlsx", skiprows=4).iloc[:, 4:]
方案2:读取阶段直接过滤列(适合大文件降低内存占用)
如果文件体积很大,不想把不需要的列加载进内存,可以用两种方式实现读取阶段过滤:
- 方式A:设置
header=None用整数作为列索引过滤
# 不需要额外依赖库,过滤后可按需自行重置表头 df1 = pd.read_excel( r"file_name.xlsx", skiprows=4, header=None, usecols=lambda x: x >=4 )
- 方式B:自动获取总列数后指定读取范围
from openpyxl import load_workbook import pandas as pd # 代码自动读取表格总列数,无需手动统计 wb = load_workbook(r"file_name.xlsx", read_only=True) total_cols = wb.active.max_column df1 = pd.read_excel( r"file_name.xlsx", skiprows=4, usecols=range(4, total_cols) )
内容的提问来源于stack exchange,提问作者noobmaster
相关产品推荐
相关产品推荐

