pandas的分布式执行框架之modin
Scale your pandas workflows by changing one line of code
To use Modin, replace the pandas import:
# import pandas as pd import modin.pandas as pd
安装
Modin can be installed from PyPI:
pip install modin
注:由于modin依赖于ray,而ray目前只支持linux和mac系统, 不支持windows,所以windows还无法享受到pandas加速的好处
全文文档
Visit the complete documentation on readthedocs: http://modin.readthedocs.io
通过一行代码加速你的pandas
Modin uses Ray to provide an effortless way to speed up your pandas notebooks, scripts, and libraries. Unlike other distributed DataFrame libraries, Modin provides seamless integration and compatibility with existing pandas code. Even using the DataFrame constructor is identical.
import modin.pandas as pd import numpy as np frame_data = np.random.randint(0, 100, size=(2**10, 2**8)) df = pd.DataFrame(frame_data)
To use Modin, you do not need to know how many cores your system has and you do not need to specify how to distribute the data. In fact, you can continue using your previous pandas notebooks while experiencing a considerable speedup from Modin, even on a single machine. Once you’ve changed your import statement, you’re ready to use Modin just like you would pandas.
Faster pandas, even on your laptop
The modin.pandas
DataFrame is an extremely light-weight parallel DataFrame. Modin transparently distributes the data and computation so that all you need to do is continue using the pandas API as you were before installing Modin. Unlike other parallel DataFrame systems, Modin is an extremely light-weight, robust DataFrame. Because it is so light-weight, Modin provides speed-ups of up to 4x on a laptop with 4 physical cores.
In pandas, you are only able to use one core at a time when you are doing computation of any kind. With Modin, you are able to use all of the CPU cores on your machine. Even in read_csv
, we see large gains by efficiently distributing the work across your entire machine.
import modin.pandas as pd df = pd.read_csv("my_dataset.csv")
Modin is a DataFrame designed for datasets from 1KB to 1TB+
We have focused heavily on bridging the solutions between DataFrames for small data (e.g. pandas) and large data. Often data scientists require different tools for doing the same thing on different sizes of data. The DataFrame solutions that exist for 1KB do not scale to 1TB+, and the overheads of the solutions for 1TB+ are too costly for datasets in the 1KB range. With Modin, because of its light-weight, robust, and scalable nature, you get a fast DataFrame at small and large data. With preliminary cluster and out of core support, Modin is a DataFrame library with great single-node performance and high scalability in a cluster.
modin.pandas
is currently under active development. Requests and contributions are welcome!
More information and Getting Involved
- Documentation
- Ask questions on our mailing list modin-dev@googlegroups.com.
- Submit bug reports to our GitHub Issues Page.
- Contributions are welcome! Open a pull request.