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

使用Pandas读取Excel时如何跳过指定列以提升性能?

解决Pandas读取Excel时跳过指定列的问题

嘿,这个需求其实挺实用的,尤其是处理大Excel文件的时候——Pandas的read_excel确实没提供直接的skip_cols参数,但我们有两种高效的办法实现,完全能达到你想要的性能优化效果:

方法一:先获取表头再筛选保留列

这种方法适合你不确定列的顺序,但明确知道要跳过的列名的场景,而且只需要读取一次表头,几乎不占额外资源:

import pandas as pd

# 定义要跳过的列
cols_to_skip = ['col_a', 'col_b', 'col_zz']

# 先读取Excel的表头(只加载第一行,速度极快)
xls = pd.ExcelFile('large_excel_file.xlsx')
all_columns = xls.parse(sheet_name=0, nrows=0).columns.tolist()

# 计算需要保留的列(排除要跳过的)
cols_to_keep = [col for col in all_columns if col not in cols_to_skip]

# 读取时只加载需要的列
df = pd.read_excel('large_excel_file.xlsx', usecols=cols_to_keep)

方法二:用lambda函数直接过滤列名

这个方法更简洁,不需要单独读取表头,Pandas会在读取过程中自动过滤掉指定列,性能同样出色:

import pandas as pd

# 用集合存储要跳过的列,查找速度更快(大列数场景更明显)
cols_to_skip = {'col_a', 'col_b', 'col_zz'}

# 通过usecols的lambda参数直接过滤
df = pd.read_excel('large_excel_file.xlsx', usecols=lambda col: col not in cols_to_skip)

重要提醒

别用先读取整个DataFrame再drop列的方式!比如df = pd.read_excel(...).drop(cols_to_skip, axis=1)——这种方法会先加载整个大文件到内存,完全失去了性能优化的意义,上面两种方法都是在读取阶段就跳过不需要的列,内存占用和读取速度都会大幅提升。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:08:14