如何加速Python读取Excel文件的性能_使用calamine引擎替代openpyxl
启用calamine引擎需满足pandas>=2.2.0且安装calamine-python;通过storage_options={"engine": "calamine"}隐式触发,不支持engine参数直传,仅加速读取、不支持写入与样式。
pd.read_excel() 怎么启用 calamine 引擎
必须满足两个硬性条件:pandas>=2.2.0 且安装 calamine-python(不是 calamine)。calamine 是 Rust 库,Python 绑定叫 calamine-python,装错就直接报 ImportError: Unable to find calamine library。
安装命令是:
pip install "pandas>=2.2.0" calamine-python
启用方式非常隐蔽:不能靠 engine 参数显式传入(那样会报 ValueError: Unknown engine 'calamine'),而是靠 storage_options 隐式触发:
- 读取单个 sheet 时,用
pd.read_excel("file.xlsx", storage_options={"engine": "calamine"}) - 读取多个 sheet 时,先创建
pd.ExcelFile("file.xlsx", storage_options={"engine": "calamine"}),再调用.parse()
注意:storage_options 这个参数本意是传给底层文件系统(如 S3),但 pandas 2.2+ 把它复用为 calamine 的开关——文档没写,IDE 不提示,属于“靠源码或 issue 发现”的隐藏机制。
为什么 calamine 比 openpyxl 快 10 倍
根本差异不在 Python 层,而在数据解析模型:openpyxl 是纯 Python 实现的 XML 解析器,要解压 .xlsx、逐层遍历 XML 节点、重建单元格对象;calamine 是 Rust 写的二进制解析器,直接跳过 XML DOM 构建,按 Excel 内部结构(如 SharedStrings、SheetData)做内存映射式读取。
这意味着:
Python 3.14.3
微软官方的 Python 扩展,是 VS Code 安装量最高的扩展(209M+)。集成 IntelliSense(通过 Pylance)、调试(通过 Python Debugger)、代码检查、格式化、重构和单元测试等功能。支持 Jupyter Notebook、虚拟环境管理和多 Python 版本切换。
- 对 50 万行 × 50 列的文件,
openpyxl耗时主要卡在 XML 解析(占 40%)和对象实例化(每 cell 一个openpyxl.cell.cell.Cell对象) -
calamine不生成任何中间 cell 对象,直接返回 numpy 数组或 pandas Series,跳过类型推断阶段 - 它不支持样式、公式、合并单元格等——不是 bug,是设计取舍。如果你的 Excel 里有大量条件格式或 =SUM(A:A),
calamine会静默忽略,只读数值/字符串原始值
读取多 sheet 或获取 sheet 名称时怎么绕过性能陷阱
直接用 pd.ExcelFile(file).sheet_names 会触发完整文件加载(哪怕你只想要名字),在 10MB+ 文件上可能卡 20 秒以上。这不是 pandas 的锅,是 openpyxl 默认行为:打开即解析整个 workbook.xml。
真正轻量的方案是绕过 pandas,直接用 zipfile 解析:
import zipfile
from xml.etree import ElementTree as ET
def get_xlsx_sheet_names(file_path):
with zipfile.ZipFile(file_path) as zf:
with zf.open("xl/workbook.xml") as f:
tree = ET.parse(f)
root = tree.getroot()
return [s.get("name") for s in root.iter("{http://schemas.openxmlformats.org/spreadsheetml/2006/main}sheet")]
这个函数读 14MB 文件只要 0.04 秒,且完全不依赖 openpyxl 或 calamine。但它只适用于 .xlsx,对 .xls 或 .xlsb 无效——后者得用 xlrd 的 on_demand=True 模式。
calamine 不能写的坑:to_excel 还在用 openpyxl
目前(pandas 2.2.x)所有 df.to_excel() 调用仍强制走 openpyxl,无论你是否装了 calamine-python。这意味着:
- 想提速写入?没门。50 万行导出仍要 2 分钟
- 不能靠 “读用 calamine + 写用 calamine” 实现端到端加速
- 如果流程是「读→清洗→写」,瓶颈永远在最后一步,此时应考虑换格式:用
df.to_parquet()或df.to_feather()替代 Excel 输出
官方明确说 calamine 写支持要等到 pandas 3.0(预计 2026 年中发布),在此之前,别指望它能替代 openpyxl 的全部能力——它只解决最痛的那个点:读大文件慢。
如非特殊说明,本站内容均来自于网友自主分享,如有任何问题均请联系我们进行处理!
猜您喜欢
三角洲行动s10加速进化任务攻略
2026-07-03《三角洲行动》是一款设定在2035年的第一人称特战干员战术射击游戏。三角洲行动的s10赛季终于上线了,还更新了新的3×3任务,那么有不少小伙伴好奇s10加速进化任务怎么做,下面就来告诉大家。 三角洲行动s10加速进化任务攻略 一、任务基础详情 任务名称:加速进化 任务类型:S10赛季第四阶段主线(心聚变) 任务目标(单局完成,缺一不可) 在巴克什机密或航天基地机密中,击败3名敌方干员(AI不算,必...
迷你世界加速轨道怎么制作
2026-06-27迷你世界游戏里面有很多的道具武器可以去制作,今天给大家带来了游戏里面的加速轨道制作方法,还有小伙伴不清楚加速轨道怎么制作,那么下面就是相关的内容. 迷你世界加速轨道制作方法 合成需要:精铁锭X2、闪金锭X1、小木棍X4、蓝色电能线X1 接收电石能量信号可以使铁道车加速 本文内容来源于互联网,如有侵权请联系删除。
Steam Machine被吐槽性能不及PS5 却贵了450美元
2026-06-23V社在今天公布了Steam Machine的售价,基础款售价高达1050美元,这还不包括Steam控制器,仅配备512GB固态硬盘。如果升级到2TB固态硬盘,价格更是飙升至令人咋舌的1349美元。如果加上控制器,那还得额外支付69美元,这样一来,顶配版的价格就直接飙升至1428美元。这价格着实让人心疼,Valve也心知肚明。 然而,更糟糕的是它的性能。SteamMachine的性能评测现已解禁,各...
Steam Machine数毛社性能评测:除了价格外其他无敌!
2026-06-23经过近两周的测试,DigitalFoundry发布了SteamMachine的详细评测报告。Valve这款新主机在设计与做工方面获得了高度评价,但其定价引发的讨论热度丝毫不逊于硬件性能本身。 评测者指出,SteamMachine给人的第一印象极佳。机身紧凑、几乎静音,体积明显小于绝大多数游戏PC。外观方面,有评测将其比作一台“放大版的任天堂GameCube”。另一加分项是可更换的磁吸式面板,用户未...
桌面处理器第一次!AMD Zen 6加速频率首破7GHz
2026-06-22当下史上最强一代锐龙要来了,Intel难追! 据Tweaktown报道,爆料达人Moore'sLawisDead分享了一位据称是AMD内部人士的消息,该人士声称看到了包含一些宏伟目标的内部文件。在Zen6架构规划里,至少一款锐龙桌面CPU会做到7GHz加速频率。 如果顺利量产,它将是首款官方标称破7GHz的桌面消费处理器,一举改写Inteli9-14900KS保持的6.2GHz官方频率纪录。 关键...
Steam新主机跑分泄露遭玩家群嘲:性能太差了!
2026-06-19近期有消息称SteamMachine可能已送到评测者手中,随后知名跑分平台Geekbench上出现了新的测试数据。这进一步印证了Valve已开始向媒体发放评测样机的传闻。 在Geekbench上,Valve这款新主机以“Fremont”代号出现。测试记录显示其搭载了一枚AMD定制CPU,型号标识为“AMDCustomCPU1772”,采用6核心12线程设计,配备16MB L3缓存,基础频率为4.8...
DNF夏日新程奇迹加速活动攻略
2026-06-11DNF破浪者和女蓝拳快上线了,同时上线的还有大量的周年庆福利活动,比如夏日新程奇迹加速活动,那么DNF夏日新程奇迹加速活动怎么玩?下面就给大家带来DNF夏日新程奇迹加速活动攻略。 DNF夏日新程奇迹加速活动攻略 可领取3个胶囊 胶囊奖励和往期差别不大 完成教学可解锁特训活动,可购买进阶胶囊解锁进阶奖励 本文内容来源于互联网,如有侵权请联系删除。
卡普空称《鬼武者:剑之道》试玩版不能表现真实性能 正式版会推出性能工具
2026-06-05《鬼武者:剑之道》的开发团队提醒玩家,目前的试玩版并不能反映最终正式版的性能表现。 据开发者称,当前版本仍处于优化调整阶段,因此帧率、稳定性以及整体技术状态可能与正式版存在差异。为了更准确地评估PC版的运行效果,官方后续将推出专门的基准测试工具,帮助玩家检验游戏在自己系统上的实际表现。 卡普空同时呼吁玩家关注项目在测试和优化方面的后续更新信息。
怎么查看电脑是否开启了硬件加速_显示性能基础检测【建议】
2026-06-04硬件加速是否真正启用需五步验证:一查系统设置开关状态;二用dxdiag确认WDDM3.0+与硬件加速启用;三在设备管理器核对驱动日期及签名;四通过chrome://gpu检查各渲染模块是否硬件加速;五用PowerShell查注册表HwSchMode值是否为2。 如果您在使用Win11或Win10系统时遇到视频播放卡顿、网页动画迟滞、设计软件渲染缓慢或游戏输入延迟升高,可能是因为硬件加速虽已设置开启...
如何修复Python aiohttp请求时出现的ClientPayloadError?
2026-06-04ClientPayloadError表明服务端提前关闭连接,非客户端代码错误;常见于服务端超时、拒绝大响应或代理截断,需通过抓包、检查响应头、服务端日志及添加读取超时和异常处理来定位解决。 ClientPayloadError通常意味着服务端提前关闭了连接 这个错误不是客户端代码写错了,而是aiohttp在读取响应体时发现服务端已经断开了连接。常见于服务端超时、主动拒绝大响应、或代理/网关(如Ng...
