我一直在寻找并行化的选项,并找到了ray和modin。经过一些测试后,我对使用modin的好处有点迷惑了。两个例子:
适用于180 MB文件的df = pd.read_csv() pandas 5.2s与modin.pandas 2.7s
但是df.groupby() pandas的0.59对modin.pandas的5.46
哪些类型的应用程序将从使用modin中受益?这里是否有一个通用的规则,或者所有的东西都必须单独测试?
发布于 2021-01-08 22:12:42
来自https://modin.readthedocs.io/en/latest/
Modin使用Ray或Dask提供一种轻松的方式来加速您的pandas笔记本、脚本和库。与其他分布式DataFrame库不同,Modin提供了与现有pandas代码的无缝集成和兼容性。即使使用DataFrame构造函数也是一样的。
突出的两个主要功能是:
使用相同pandas接口的多核CPU的
在pandas中,当你做任何类型的计算时,你一次只能使用一个核心。使用Modin,您可以使用计算机上的所有CPU核心。
使用Modin,由于其轻量级、健壮和可伸缩的特性,您可以获得1MB和1TB+的快速DataFrame
特别是对于这个问题的慢group_by部分,有一个github的讨论,指出常规的老熊猫比modin.pandas工作得更好:https://github.com/modin-project/modin/issues/895
Modin仍在积极开发中,他们的github存储库(https://github.com/modin-project/modin)中的README.md列出了panda API覆盖范围,其中提到了以下功能:

发布于 2021-01-21 15:27:15
根据经验,您在列上执行的任何转换(如聚合函数(groupby()、sum()、count()在modin中都会更快。
原因很简单,Modin将使用您机器的多核,因此所有这些都将比pandas所做的要快。
通常,如果您在任何列上使用.transform() or .apply(),Modin将能够更快地完成此操作。
然而,在少数情况下,modin会比熊猫慢。示例:
.append()谢谢!
https://stackoverflow.com/questions/65630190
复制相似问题