美文网首页python收藏
使用Modin获得更快的Pandas,即使在笔记本电脑上也是如此

使用Modin获得更快的Pandas,即使在笔记本电脑上也是如此

作者: 深度学习实验室 | 来源:发表于2019-04-23 02:42 被阅读0次

Pandas提供高性能,易于使用的数据结构和数据分析工具。但是,在处理过多的数据时,单个核心上的Pandas变得不足,人们不得不求助于不同的分布式系统来提高性能。然而,提高性能的权衡伴随着陡峭的学习曲线。从本质上讲,用户可能只是希望Pandas运行得更快,并且不希望针对其特定的硬件设置优化其工作流程。这意味着人们希望将10KB数据集用作10TB数据集的相同Pandas脚本。Modin通过优化大熊猫提供解决方案,以便数据科学家花时间从数据中提取价值,而不是从提取数据的工具中提取价值。

Modin 在8核计算机上将Pandas查询加速4倍,只需要用户更改笔记本中的单行代码。安装

Modin是完全开源的,可以在GitHub上找到:https//github.com/modin-project/modin

Modin可以从PyPI安装:

pip install modin

modin所做的基本上是它只是增加了CPU所有内核的利用率,从而提供了更好的性能。

只需要修改import语句,其中一个需要导入modin.pandas 而不是简单pandas.

import numpy as np

import modin.pandas as pd

让我们使用由随机整数组成的Numpy构建一个玩具数据集。请注意,我们不必在此处指定分区。

ata = np.random.randint(0,100,size =(2 **

16,2 ** 4))df = pd.DataFrame(data)

df = df.add_prefix(“Col:”)

速度比较

pd.read_csv

read_csv是迄今为止最常用的pandas操作。当我们在pandas vs modin中使用read_csv时,让我们快速比较一下。

大熊猫

%%time
import pandas

pandas_csv_data = pandas.read_csv("../800MB.csv")

-----------------------------------------------------------------

CPU times: user 26.3 s, sys: 3.14 s, total: 29.4s

Wall time: 29.5 s

Modin

%%time

modin_csv_data = pd.read_csv("../800MB.csv")

-----------------------------------------------------------------

CPU times: user 76.7 ms, sys: 5.08 ms, total: 81.8 ms

Wall time: 7.6 s

使用Modin,read_csv只需更改import语句,即可在4核机器上执行快4倍的速度

df.groupby

pandas groupby编写得非常好,速度非常快。但即便如此,modin仍然胜过大熊猫。

pandas

%%time

import pandas

_ = pandas_csv_data.groupby(by=pandas_csv_data.col_1).sum()

-----------------------------------------------------------------

CPU times: user 5.98 s, sys: 1.77 s, total: 7.75 s

Wall time: 7.74 s

modin

%%time

results = modin_csv_data.groupby(by=modin_csv_data.col_1).sum()

-----------------------------------------------------------------

CPU times: user 3.18 s, sys: 42.2 ms, total: 3.23 s

Wall time: 7.3 s

相关文章

网友评论

    本文标题:使用Modin获得更快的Pandas,即使在笔记本电脑上也是如此

    本文链接:https://www.haomeiwen.com/subject/jhtmgqtx.html