使用 PyPolars 使 Pandas 速度提高 3 倍

源节点: 1854103

使用 PyPolars 使 Pandas 速度提高 3 倍

标签: 熊猫, 性能, 蟒蛇

了解如何使用 PyPolars 库加快 Pandas 工作流程。


By 萨蒂扬库马尔, 机器学习爱好者和程序员



照片由 蒂姆古夫 on Unsplash

 

Pandas 是数据科学家处理数据的最重要的 Python 包之一。 Pandas 库主要用于数据探索和可视化,因为它带有大量的内置函数。 Pandas 无法处理大型数据集,因为它不会在 CPU 的所有内核上扩展或分布其进程。

为了加快计算速度,可以利用 CPU 的所有核心并加快工作流程。 有各种开源库,包括 Dask、Vaex、Modin、Pandarallel、PyPolars 等,它们可以跨 CPU 的多个内核并行计算。 在本文中,我们将讨论 PyPolars 库的实现和使用,并将其性能与 Pandas 库进行比较。

PyPolars 是什么?

 
PyPolars 是一个类似于 Pandas 的开源 Python 数据框库。 PyPolars 利用 CPU 的所有可用内核,因此比 Pandas 执行计算更快。 PyPolars 有一个类似于 Pandas 的 API。 它是用 Python 包装器用 Rust 编写的。


理想情况下,当数据对于 Pandas 来说太大而对于 Spark 来说太小时,使用 PyPolars


PyPolars 如何工作?

 
PyPolars 库有两个 API,一个是 Eager API,另一个是 Lazy API。 Eager API 与 Pandas 非常相似,执行完成后立即产生结果,类似于 Pandas。 Lazy API 与 Spark 非常相似,其中在执行查询时形成地图或计划。 然后在 CPU 的所有内核上并行执行。



(作者提供的图片),PyPolars API

 

PyPolars 基本上是作为 python 绑定到 Polars 库。 PyPolars 库最好的部分是它与 Pandas 的 API 相似性,这使开发人员更容易使用。

安装方式:

 
可以使用以下命令从 PyPl 安装 PyPolars:

pip install py-polars


并使用导入库

import pypolars as pl


基准时间限制:


为了演示,我使用了一个包含 6.4 万个实例的大型数据集 (~25Gb)。




(作者提供的图片),Pandas 和 Py-Polars 基本操作的基准时间数

 

对于使用 Pandas 和 PyPolars 库的一些基本操作的上述基准时间数字,我们可以观察到 PyPolars 几乎比 Pandas 快 2 到 3 倍。

现在我们知道 PyPolars 有一个与 Pandas 非常相似的 API,但它仍然没有涵盖 Pandas 的所有功能。 例如,我们没有 .describe() PyPolars 中的函数,相反,我们可以使用 df_pypolars.to_pandas().describe()

用法:

 

(作者代码)

总结

 
在本文中,我们简要介绍了 PyPolars 库,包括它的实现、使用以及在一些基本操作中将其基准时间数字与 Pandas 进行比较。 请注意,PyPolars 的工作方式与 Pandas 非常相似,而且 PyPolars 是一个内存高效的库,因为它支持的内存是不可变的。

一个人可以通过 文件 以详细了解库。 还有各种其他开源库可以并行化 Pandas 操作并加快进程。 阅读 下面提到的文章 了解 4 个这样的库:

4 个可以并行化现有 Pandas 生态系统的库
使用这些框架通过并行处理分配 Python 工作负载

 
参考文献:

[1] Polars 文档和 GitHub 存储库: https://github.com/ritchie46/polars

 
感谢阅读

 
简介: 萨蒂扬库马尔 是机器学习爱好者和程序员。 萨蒂扬 写入 关于数据科学,并且是人工智能领域的顶级作家。 他正在一家组织中寻求具有挑战性的职业,该组织提供了利用他的技术技能和能力的机会。

原版。 经许可重新发布。

相关新闻:

来源:https://www.kdnuggets.com/2021/05/pandas-faster-pypolars.html

时间戳记:

更多来自 掘金队