pandas/polars/gma读写Excel文件速度对比,探索Excel数据处理的最佳性能模式

  Excel(.xlsx)文件作为数据表重要承载格式,在诸多领域有较大规模的应用。在数据自动化处理过程中,针对Excel数据,我们常编写代码进行自动化过程。

  本文主要比较Python的第三方库 pandas/polars/gma,针对大型 .xlsx 文件的读写效率,方便各位朋友按需使用。

测试环境

系统和硬件

操作系统:Window 10 21H2
CPU:Intel® Core™ i5-10210U
内存:16.0 GB

软件

Python:3.11
IDE:Jupyter Notebook 7

库名版本
pandas2.2.2
polars1.2.1
gma2.0.11.1

测试用例

测试数据为洛阳市2022年POI点(数据来源于网络),其中1X为原始数据,2X、3X、4X、5X为原始数据在行方向上复制2、3、4、5倍后的结果。

名称文件大小数据量(行×列)
洛阳市POI数据_1X.xlsx9.43MB208319 × 8
洛阳市POI数据_2X.xlsx17.2MB416638 × 8
洛阳市POI数据_3X.xlsx25.0MB624957 × 8
洛阳市POI数据_4X.xlsx32.8MB833276 × 8
洛阳市POI数据_5X.xlsx40.6MB1041595 × 8

测试数据下载:
链接:https://pan.baidu.com/s/1r_3T18_9z8eL8UCQB9qd9g?pwd=tjj3
提取码:tjj3

  分别测试 pandas读写、polars读写、gma(默认模式、直读模式)读写 Excel 文件的性能。

读取测试(以最终读取到 pandas.DataFrame 为目标)

pandas

polars

gma(默认模式)

gma(直读模式)

保存测试(以各库原生读取结果保存到Excel为目标)

pandas

polars

gma(默认模式)

gma(直读模式)

汇总分析

Excel 读取


  1、Excel(.xlsx)文件大小不会对 pandas、polars 和 gma 的性能造成影响。文件越大、读取时间越长,且呈线性正相关。

  2、polars读取性能最好,gma 次之,pandas 最差。polars 作为高性能 DataFrame 库的名头果然不是盖的。(以1X为例)polars 读取性能大约为 pandas 的 9 ~ 10 倍,为 gma 默认模式的 3 ~ 4 倍,为 gma 直读式的 2 ~ 3 倍。

Excel 写出


  1、DataFrame 大小对 polars 写出 Excel 文件性能有影响,对 pandas、gma基本无影响。pandas、gma(默认模式、直读模式) 写出 Excel 文件的时间随文件大小的增大线性增长。polars在文件较小时与pandas、gma 趋势一致,当文件增大到一定程度时用时快速增加(本例中为40.6MB),性能变差,与 pandas 相近。

  2、gma 默认模式写出性能最好,gma 直读模式次之,polars 第三,pandas 最差。但 polars 写出文件性能随数据增大会产生衰减。(以1X为例)gma 保存 Excel 性能为 pandas 的 5 ~ 6倍,为 polars 的的 3 ~ 4 倍。 可能由于 gma 不是 DataFrame 等原因,gma 保存到Excel 的效率远高于 pandas 和 polars。

读写 Excel 的最优解推测

  pandas 作为一个广泛使用的 DataFrame 库,功能完善,稳定性极好;polars 作为 pandas 的追赶者和挑战者,虽然不如 pandas 稳定,且功能略有缺失(这也是 gma 不提供 polars 接口的原因),但凭借其高性能的优势,也对pandas 的地位产生了一定的威胁。
  gma 作为一个非 DataFrame 库,与传统的 DataFrame 库相比,不具备表格数据处理分析能力,但在读写 Excel 文件性能上明显好于 pandas ,写出效率甚至远高于 polars。gma 提供了矢量数据(Layer)与 pandas 数据框 (DataFrame)的转换接口:

  • gma 到 pandas:Layer.ToDataFrame()
  • pandas 到 gma:io.ReadDataFrameAsLayer()

gma 保存 pandas.DataFrame 到 Excel 性能测试

  可见,利用 gma 保存 DataFrame 的用时介于 gma 和 polars之间,且用时(保存效率)远远高于 pandas 和 polars。利用这一性质,可以尝试 Excel 数据处理的最佳性能模式:

polars 读取数据 >>> (polars.DataFrame <= 数据分析 => pandas.DataFrame) >>> gma.~.Layer >>> Excel 文件

了解更多 gma

1、gma.luosgeo.com。2、加作者微信:Luo_Suppe。3、关注公众号:洛的地理研学

1、gma.luosgeo.com。2、加作者微信:Luo_Suppe。3、关注公众号:洛的地理研学

1、gma.luosgeo.com。2、加作者微信:Luo_Suppe。3、关注公众号:洛的地理研学

相关链接:
gma 2.0.11 (2024.07.14) | GmaGIS V0.0.0a5 更新日志
gma 2 用户文档(pdf版)更新计划

  • 25
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洛的地理研学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值