评论
由 Satyam Kumar,机器学习爱好者和程序员
Pandas 是数据科学家处理数据时最重要的 Python 包之一。Pandas 库主要用于数据探索和可视化,因为它提供了大量内置函数。由于 Pandas 无法处理大规模数据集,因为它无法扩展或将处理过程分配到 CPU 的所有核心。
为了加快计算速度,可以利用 CPU 的所有核心来提升工作流程的速度。包括 Dask、Vaex、Modin、Pandarallel、PyPolars 等在内的各种开源库可以将计算并行化到 CPU 的多个核心。在这篇文章中,我们将讨论 PyPolars 库的实现和使用,并将其性能与 Pandas 库进行比较。
PyPolars 是一个开源的 Python 数据框架库,类似于 Pandas。PyPolars 利用 CPU 的所有可用核心,因此比 Pandas 更快地执行计算。PyPolars 的 API 与 Pandas 相似。它是用 Rust 编写的,并具有 Python 包装器。
理想情况下,当数据过大以至于无法使用 Pandas 处理,但又小到不需要使用 Spark 时,应使用 PyPolars。
PyPolars 库有两个 API,一个是 Eager API,另一个是 Lazy API。Eager API 非常类似于 Pandas,结果在执行完成后立即产生。Lazy API 则类似于 Spark,当执行查询时会形成一个映射或计划,然后在 CPU 的所有核心上并行执行。
(图片由作者提供),PyPolars API
PyPolars 基本上是 Polars 库的 Python 绑定。PyPolars 库的最佳部分是其与 Pandas 的 API 相似性,这使得开发者更容易上手。
可以使用以下命令从 PyPl 安装 PyPolars:
**pip install py-polars**
并使用以下命令导入库
**import pypolars as pl**
在演示中,我使用了一个大规模数据集(约 6.4GB),包含 2500 万个实例。
(图片由作者提供),Pandas 和 Py-Polars 基本操作的基准时间数量
对于使用 Pandas 和 PyPolars 库的一些基本操作的基准时间数据,我们可以观察到 PyPolars 的速度几乎比 Pandas 快 2 到 3 倍。
现在我们知道 PyPolars 的 API 非常类似于 Pandas,但仍然未覆盖 Pandas 的所有功能。例如,PyPolars 中没有 **.describe()**
函数,而是可以使用 **df_pypolars.to_pandas().describe()**
(作者提供的代码)
在本文中,我们简要介绍了 PyPolars 库,包括其实现、用法,并将其基准时间与 Pandas 进行了一些基本操作的比较。请注意,PyPolars 的工作方式与 Pandas 非常相似,且 PyPolars 是一个内存高效的库,因为它的内存是不可变的。
可以查看 文档 以详细了解该库。还有各种其他开源库可以并行化 Pandas 操作,加速过程。阅读 下文提到的文章 以了解 4 个这样的库:
通过使用这些框架来进行并行处理以分配 Python 工作负载
参考文献:
[1] Polars 文档和 GitHub 存储库:github.com/ritchie46/polars
感谢阅读
简介: Satyam Kumar 是一位机器学习爱好者和程序员。Satyam 撰写 关于数据科学的文章,并且是 AI 的顶级写手。他正在寻求一个具有挑战性的职业机会,以发挥他的技术技能和能力。
原文。经授权转载。
相关:
-
Vaex: Pandas 但快 1000 倍
-
如何用 Modin 加速 Pandas
-
如何处理机器学习中的分类数据
1. Google 网络安全证书 - 快速进入网络安全职业。
2. Google 数据分析专业证书 - 提升你的数据分析技能
3. Google IT 支持专业证书 - 支持组织的 IT