【谎言大揭秘】Modin真的比pandas运行更快吗?
2024-09-07 13:31:33
最近看了某公众号文章,推荐了所谓的神器,据说读取速度吊打pandas,可谓牛逼。
抱着学习的精神,网上搜了文章,发现了一些端倪,事实真是这样吗?来一起揭秘真相。
- 首先安装包
# pip install ray
# pip install dask
# pip install modin
- 安装版本
Successfully installed aiohttp-3.6.2 async-timeout-3.0.1 google-2.0.3 multidict-4.7.6 py-spy-0.3.3 ray-0.8.5 redis-3.4.1 yarl-1.4.2
Requirement already satisfied: dask in /Applications/anaconda3/lib/python3.7/site-packages (2.11.0)
Successfully installed modin-0.7.3 pandas-1.0.3
Successfully uninstalled ray-0.8.5
Successfully installed pyarrow-0.16.0 ray-0.8.4
- 导入包测试
import modin.pandas as pd
# ImportError: Please `pip install modin[ray]` to install compatible Ray version.
# 首次报错
# pip install modin[ray]
- 第二次运行
弹窗,点允许,哈哈 # 您要应用程序“redis-server”接受传入网络连接吗?
modin.pandas: 76.71852612495422
import time
import modin.pandas as pd start = time.time()
#Taxi_Trips(正式).csv 5.38G
df = pd.read_csv(r'/Users/dugh/Desktop/芝加哥市出租车行车记录(2013年至今)/Taxi_Trips(正式).csv')
end = time.time()
print(end-start)
pandas: 71.43032503128052
import time
import pandas as pd start = time.time()
#Taxi_Trips(正式).csv 5.38G
df = pd.read_csv(r'/Users/dugh/Desktop/芝加哥市出租车行车记录(2013年至今)/Taxi_Trips(正式).csv')
end = time.time()
print(end-start)
- 第一轮(5.38G):pandas胜出 5 秒
- 第二轮(680.9M):pandas 胜出 3 秒
- 第三轮(3G):pandas胜出 11 秒
- 修改配置
文章说:如果待操作的数据文件远大于电脑内存RAM,可以设置,那就设置再运行一遍吧
# 如果待操作的数据文件远大于电脑内存RAM,可以设置
import os
os.environ["MODIN_OUT_OF_CORE"]='true'
import modin.pandas as pd
验证下是不是,我设置问题
-----------------------------分割线--------------------------------
- 第一轮(5.38G):pandas胜出 2 秒
- 第二轮(680.9M):pandas 胜出 3 秒
- 第三轮(3G):pandas胜出 12 秒
- 总结:
通过不同的文件格式和文件大小,pandas均比modin快,尤其在h5大文件下,快了将近一半。
真的有那么神奇吗?
就算后面改了配置,modin还是没有变快,到这里已经无需过多解释。
- 附录1
本人测试机配置:19年 15寸 macbook pro 内存16g 8核心 系统osx:10.14.6
- 附录2
本次测试数据
- 附录3
网友反馈 https://www.jiqizhixin.com/articles/2019-04-13-2
最新文章
- SQL Server 2008创建oracle链接服务器(心得)
- UNICODE
- Linq学习笔记(转)
- Vue-简单购物车
- 《精通Linux内核必会的75个绝技》知识杂记
- 【LightOJ 1422】Halloween Costumes(区间DP)
- codeforces round #201 Div2 A. Difference Row
- 性能测试之-wrk(转)
- Java——异常
- win8 telnet VirtualBox中的redhat9
- 重启php-fpm
- HDU5441 Travel (离线操作+并查集)
- sass 语法实例
- ANDROID对文件的操作介绍
- Filter 知识总结
- java学习之jdbc的封装
- 0. Java开发中的23种设计模式详解(转)
- Spring消息之AMQP.
- 为什么Dotnet Core的DI默认是在控制器中注入
- jquery append()与html()注意项