最近看了某公众号文章, 推荐了所谓的神器, 据说读取速度吊打 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 核心 系统 OS X:10.14.6
附录 2
本次测试数据
附录 3
网友反馈 https://www.jiqizhixin.com/articles/2019-04-13-2
来源: https://www.cnblogs.com/hightech/p/12952173.html