第三方库集成#
Modin 是 Pandas 的直接替代品,因此我们希望它能像 Pandas 一样与第三方库互操作。 为了了解 Modin 在哪些方面表现良好,哪些方面需要改进,我们选择了一些重要的机器学习 + 可视化 + 统计库, 然后查看了它们如何与 Pandas 配合使用的示例(如果可能的话,来自它们的文档)。然后我们用 Modin 运行了相同的工作流程, 并跟踪了哪些工作正常,哪些失败了。
在下表中,您将看到我们测试的每个第三方库的成功测试调用次数/总测试调用次数,以及Pandas和Modin与该库集成的定性描述。
在深入探讨中,您可以查看我们用于测试API调用的Jupyter笔记本以及提交的相应Github问题。如果您在自己的工作流程中遇到其他问题/示例,我们鼓励您提交一个问题或贡献一个PR!
注意
这些互操作性指标是初步的,并非每个库的所有API都经过了测试。欢迎添加更多!
Modin 库的互操作性#
库 |
API 成功次数 / 调用次数 |
互操作性 |
|---|---|---|
seaborn |
73% (11/15) |
Pandas: 接受 Pandas DataFrames 作为输入以生成图表 |
plotly |
78% (7 / 9) |
Pandas: 接受Pandas DataFrames作为输入以生成图表,包括将X和Y参数指定为df列 |
matplotlib |
100% (5 / 5) |
Pandas: 接受Pandas数据框作为输入,用于生成散点图、条形图等。 |
altair |
0% (0 / 1) |
Pandas: 接受Pandas DataFrames作为通过Chart生成图表的输入 |
bokeh |
0% (0 / 1) |
Pandas: 通过ColumnDataSource加载Pandas数据框 |
sklearn |
100% (6 / 6) |
Pandas: 许多函数接受Pandas DataFrames作为输入 |
Hugging Face (Transformers, Datasets) |
100% (2 / 2) |
Pandas: 将Pandas数据框加载到数据集中,并使用Transformers.InputExample(已弃用)处理Pandas数据框行作为输入。 |
Tensorflow |
75% (3 / 4) |
Pandas: 将Pandas数据框转换为张量 |
NLTK |
100% (1 / 1) |
Pandas: 在Pandas数据框上执行如分词等转换 |
XGBoost |
100% (1 / 1) |
Pandas: 通过DMatrix函数加载Pandas数据框 |
statsmodels |
50% (1 / 2) |
Pandas: 在拟合模型时可以接受Pandas DataFrames |
深入探讨#
seaborn#
- Github Issues
plotly#
- Github Issues
matplotlib#
altair#
- Github Issues
bokeh#
- Github Issues
sklearn#
Hugging Face#
Tensorflow#
- Github Issues
NLTK#
XGBoost#
statsmodels#
- Github Issues
附录:系统信息#
这里的示例脚本是在以下系统上运行的:
操作系统平台和发行版(例如,Linux Ubuntu 16.04): macOS Big Sur 11.5.2
Modin 版本: 0.18.0+3.g4114183f
Ray 版本: 2.0.1
Python 版本: 3.9.7.final.0
机器: MacBook Pro (16英寸, 2019)
处理器: 2.3 GHz 8核 Intel Core i9 处理器
内存: 16 GB 2667 MHz DDR4