Skip to content

Latest commit

 

History

History
75 lines (38 loc) · 4.27 KB

pandas-alternatives-processing-larger-faster-data-python.md

File metadata and controls

75 lines (38 loc) · 4.27 KB

Pandas 不够用?这里有几个处理更大、更快数据的 Python 替代方案。

原文:www.kdnuggets.com/2021/07/pandas-alternatives-processing-larger-faster-data-python.html

评论

DaurEd 提供优质且负担得起的教育


我们的前三个课程推荐

1. Google 网络安全证书 - 快速进入网络安全职业道路。

2. Google 数据分析专业证书 - 提升你的数据分析技能。

3. Google IT 支持专业证书 - 支持你的组织的 IT 工作。


数据以各种格式存在于各处,如 CSV、平面文件、JSON 等。当数据量较大时,很难读取到内存中,并且进行探索性数据分析(EDA)耗时较长。此博客围绕以 CSV 格式 处理表格数据,并使用 Pandas 以及 cuDF、dask、modin 和 datatable 等一些替代方案

问题: 导入(读取)大型 CSV 文件会导致 内存不足 错误。RAM 不足以一次读取整个 CSV 文件,经常导致计算机崩溃。而且,使用单个 CPU 核心处理时速度较慢。

关于本次探索中使用的数据:一个包含 500 万行和 14 列的销售数据记录,如下所示。此数据集以 zip 格式提供,下载地址为:

数据的前 5 行:

Pandas 设计为 仅在单个核心上运行,因此无法利用系统上可用的多核。

然而,cuDF 库旨在在 GPU 上实现 Pandas API。ModinDask Dataframe 库提供了围绕 Pandas API 的 并行算法

Modin 旨在对整个 pandas API 进行并行化,没有例外。这意味着所有 pandas 函数都可以在 Modin 上使用,只需更改一行代码:import modin.pandas as pd(查看下面的 Git 链接了解实现细节)。

Dask 目前缺少 Modin 已实现的多个 pandas API。

要了解如何通过参数 num_cpus 控制 Modin 使用的处理器数量,请查看:

github.com/Piyush-Kulkarni/ByeByePandas.git

在 Windows 平台上,您可以在任务管理器 > 性能中检查系统的核心数。

使用num_cpu超出系统可用核心数不会提升性能。实际上,它可能会降低性能。在我的案例中,超出系统提供的 6 个核心后,性能略有下降,如上述图表所示。

原文。已获许可转载。

相关:

更多相关话题