zoukankan      html  css  js  c++  java
  • 【谎言大揭秘】Modin真的比pandas运行更快吗?

    最近看了某公众号文章,推荐了所谓的神器,据说读取速度吊打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

  • 相关阅读:
    mock.js
    v-bind和v-model的区别
    if语句中的return
    js中全局变量和局部变量以及变量声明提升
    js中全局和局部变量的区别
    相对路径、绝对路径
    commonJs
    B/S与C/S
    background-origin
    DOM
  • 原文地址:https://www.cnblogs.com/hightech/p/12952173.html
Copyright © 2011-2022 走看看