4秒读取50w行Excel数据

4秒读取50w行Excel数据

文章比较了几种常用的读取Excel的方法,最终发现rust库Calamine的速度最快,可以在4秒内读取50w行excel数据。

原文:Fastest Way to Read Excel in Python:https://hakibenita.com/fast-excel-python

我们在测试什么

我们创建了一个25MB的Excel文件(.xlsx),包含50w行数据,每行的内容包含整数、小数、日期、布尔值、字符串5列。

使用一个迭代器来逐行遍历文件,但不进行任何操作,只比较读取速度。

使用time.perf_counter()来记录时间。

python 复制代码
import time

start = time.perf_counter()
for row in iter_excel(file): pass
elapsed = time.perf_counter() - start

参与比较的方法

  • Pandas:Pandas是Python的数据分析库,
  • Tablib:Tablib 是 Python 中最受欢迎的库之一,用于导入和导出各种格式的数据。它最初是由requests库的创建者开发的。
  • Openpyxl:专门在Python中读写Excel数据的库。
  • LibreOffice:一个开源的办公软件,支持xlsx,并且提供了命令行模式。
  • DuckDB:DuckDB 是一个"进程内 SQL OLAP 数据库管理系统"
  • Calamine:Calamine 是一个纯 Rust 库,用于读取 Excel 和 OpenDocument 电子表格文件。python-calamine是它的Python绑定。

他们的运行结果如下:

方法 耗时(秒) 保留类型 版本
Pandas 32.98 Yes 2.1.3
Tablib 28.52 Yes 3.5.0
Openpyxl 35.62 Yes 3.1.2
Openpyxl (readonly) 24.79 Yes 3.1.2
LibreOffice 15.27 No 7.5.8.2
DuckDB (sql) 11.36 Yes 0.9.2
DuckDB (execute) 5.73 No 0.9.2
Calamine (python-calamine) 3.58 Yes 0.22.1 (0.1.7)

文章也提供了代码:https://github.com/hakib/fast-excel-python

我的运行结果和原文类似,calamine能在4秒(大概4秒,具体时间和电脑配置有关)完成50w行Excel数据的读取。尽管Python性能一般,但享受了Rust高性能的福利。

运行代码需要Python3.9及以上版本。

相关推荐
我老菜11 小时前
解析excel中的图片
java·excel
CodeCraft Studio18 小时前
Excel处理控件Aspose.Cells教程:使用 Python 在 Excel 中进行数据验
开发语言·python·excel
时间之城18 小时前
笔记:记一次使用EasyExcel重写convertToExcelData方法无法读取@ExcelDictFormat注解的问题(已解决)
java·spring boot·笔记·spring·excel
VBAMatrix19 小时前
审计效率升级!快速匹配Excel报表项目对应的Word附注序号
excel·审计·财务报表·会计师事务所·审计工具
lovely_nn20 小时前
wps excel 常用操作
excel·wps
前端极客探险家1 天前
前端 Excel 工具组件实战:导入 → 可编辑表格 → 导出 + 样式同步 + 单元格合并
前端·typescript·vue·excel
AAA顶置摸鱼1 天前
使用 Pandas 进行多格式数据整合:从 Excel、JSON 到 HTML 的处理实战
json·excel·pandas
神奇侠20242 天前
基于PaddleOCR对图片中的excel进行识别并转换成word(一)
python·word·excel·paddleocr
林枫依依2 天前
Unity 将Excel表格中的数据导入到Mysql数据表中
数据库·mysql·excel
CodeJourney.2 天前
基于DeepSeek与Excel的动态图表构建:技术融合与实践应用
数据库·人工智能·算法·excel