Modin 入门学习

Modin是一个Python库,用于提升PandasAPI的执行速度,通过在多个内核上并行处理。尽管在小文件上可能表现不明显,但在处理大文件时能体现其优势。使用Modin需先安装,并选择如Dask的分布式引擎。在测试中,虽速度有所提升,但可能受硬件限制。退出时可能出现错误,且留下Dask的临时文件。
摘要由CSDN通过智能技术生成

Modin 是一个 Python 第三方库,用于加速 Pandas 的 API 执行速度。原始的 Pandas 是单线程执行的,而 Modin 则重新打包了 Pandas 里面的 API,使其同时在多个内核中运行,提高硬件性能的利用率。

使用方法很简单,安装 Modin 后,将导入 pandas 的语句由 import pandas as pd 改为 from modin import pandas as pd 即可。这时候使用的便是由 Modin 包装后的 API。但是它并没有覆盖全部的 API,遇到库中不包含的 API,它会自动切换为原始的 Pandas 执行。也就是说,使用上与原始的 Pandas 是完全一致的。

STEP-1

首先安装:pip install modin,初次使用时会报错如下:

在这里插入图片描述

需要用到分布式引擎 Ray 或者 Dask,但是安装的时候它没有作为依赖项一起安装,需要单独安装:

pip install modin[dask]

STEP-2

接下来随便找个 csv 文件来测试一下数据读取速度:

在这里插入图片描述

可以看到没有变快,反而变慢了。因为分布式计算主要是加快处理内存占用型的任务,所以上图中的文件太小时没有体现出它的优势。

STEP-3

接下来整个大一点的文件试一下:

在这里插入图片描述
可以看到 IO 速度加快了几秒,但是没有文档中说的有明显的改进。这里原因应该是测试用的电脑硬件的问题(8G+4核+机械硬盘的一台老机器)。又或者是文件还不够大,但是测试时没有很大的数据集,而且再大内存要受不了了。但是好歹它还是快了一点,有空再研究一下正确的打开方式~

STEP-4

测试完在终端退出 Python 的时候出现了两个 ERROR:tornado.iostream.StreamClosedErrorasyncio.base_futures.InvalidStateError,大意是读写流关闭的时候出现问题,估计不是上一步中影响速度的罪魁祸首。也可能是分布式引擎的兼容性问题,下次可以用 Ray 试一下。并且退出终端后,当前路径下会出现一个名为 dask-worker-space 的文件夹,里面有四个后缀名为 dirlock 的 worker 文件,是 Dask 引擎留下的临时文件。


相关阅读——Medium
阅读原文——Paradise’s Blog

待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值