No project description provided
Project description
Polars
Blazingly fast DataFrames in Rust & Python
Polars is a blazingly fast DataFrames library implemented in Rust using Apache Arrow as memory model.
- Lazy | eager execution
- Multi-threaded
- SIMD
- Query optimization
- Powerful expression API
- Rust | Python | ...
To learn more, read the User Guide.
Rust setup
You can take latest release from crates.io, or if you want to use the latest features/ performance improvements
point to the master branch of this repo.
You can add the master like this:
polars = {version="0.13.0", git = "https://github.com/ritchie46/polars" }
Or by fixing to a specific version:
polars = {version="0.13.0", git = "https://github.com/ritchie46/polars", rev = "<optional git tag>" }
Rust version
Required Rust version >=1.51
Python users read this!
Polars is currently transitioning from py-polars to polars. Some docs may still refer the old name.
Install the latest polars version with:
$ pip3 install polars
Documentation
Want to know about all the features Polars support? Read the docs!
Rust
Python
- installation guide:
$ pip3 install polars - User Guide
- Reference guide
Performance
Polars is written to be performant, and it is! But don't take my word for it, take a look at the results in h2oai's db-benchmark.
Cargo Features
Additional cargo features:
temporal (default)- Conversions between Chrono and Polars for temporal data
simd (nightly)- SIMD operations
parquet- Read Apache Parquet format
json- Json serialization
ipc- Arrow's IPC format serialization
random- Generate array's with randomly sampled values
ndarray- Convert from
DataFrametondarray
- Convert from
lazy- Lazy api
strings- String utilities for
Utf8Chunked
- String utilities for
object- Support for generic ChunkedArray's called
ObjectChunked<T>(generic overT). These will downcastable from Series through the Any trait.
- Support for generic ChunkedArray's called
[plain_fmt | pretty_fmt](mutually exclusive)- one of them should be chosen to fmt DataFrames.
pretty_fmtcan deal with overflowing cells and looks nicer but has more dependencies.plain_fmt (default)is plain formatting.
- one of them should be chosen to fmt DataFrames.
Contribution
Want to contribute? Read our contribution guideline.
ENV vars
POLARS_PAR_SORT_BOUND-> Sets the lower bound of rows at which Polars will use a parallel sorting algorithm. Default is 1M rows.POLARS_FMT_MAX_COLS-> maximum number of columns shown when formatting DataFrames.POLARS_FMT_MAX_ROWS-> maximum number of rows shown when formatting DataFrames.POLARS_TABLE_WIDTH-> width of the tables used during DataFrame formatting.POLARS_MAX_THREADS-> maximum number of threads used in join algorithm. Default is unbounded.POLARS_VERBOSE-> print logging info to stderr
[Python] compile py-polars from source
If you want a bleeding edge release or maximal performance you should compile py-polars from source.
This can be done by going through the following steps in sequence:
- install the latest rust compiler
$ pip3 install maturin- Choose any of:
- Very long compile times, fastest binary:
$ cd py-polars && maturin develop --rustc-extra-args="-C target-cpu=native" --release - Shorter compile times, fast binary:
$ cd py-polars && maturin develop --rustc-extra-args="-C codegen-units=16 lto=no target-cpu=native" --release
Note that the Rust crate implementing the Python bindings is called py-polars to distinguish from the wrapped
Rust crate polars itself. However, both the Python package and the Python module are named polars, so you
can pip install polars and import polars (previously, these were called py-polars and pypolars).
Acknowledgements
Development of Polars is proudly powered by
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file polars-0.8.2-cp36-abi3-win_amd64.whl.
File metadata
- Download URL: polars-0.8.2-cp36-abi3-win_amd64.whl
- Upload date:
- Size: 10.7 MB
- Tags: CPython 3.6+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/0.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4fcff686352d3e042c1ec30155ccf2840391d1e29a26654685113434f2612635
|
|
| MD5 |
3ba30a0e208463d3b36411f30ea71599
|
|
| BLAKE2b-256 |
5684619f94bf768fd69ffc13db6f7a775b703011126f58d13f3d9249bc6bfb3c
|
File details
Details for the file polars-0.8.2-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.
File metadata
- Download URL: polars-0.8.2-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
- Upload date:
- Size: 10.1 MB
- Tags: CPython 3.6+, manylinux: glibc 2.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/0.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8f094f63388dab5133cc9e045068d7b6c7f2a5f1744b364ea44ff9e940e6a53
|
|
| MD5 |
45f89ccfbc05f42c0b85b0c8428c4f69
|
|
| BLAKE2b-256 |
9164622c2f0139dce14237c273c3d5ef054237b756f86da363bd2057565a7d2f
|
File details
Details for the file polars-0.8.2-cp36-abi3-macosx_10_7_x86_64.whl.
File metadata
- Download URL: polars-0.8.2-cp36-abi3-macosx_10_7_x86_64.whl
- Upload date:
- Size: 9.9 MB
- Tags: CPython 3.6+, macOS 10.7+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/0.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39f4f4cbcb1dd38481893b16fe48bbaeab2c9e24538b0a02be1904a946a802c1
|
|
| MD5 |
3ed8c75b359aa5496a6e49c0be5c9ec0
|
|
| BLAKE2b-256 |
d5f38a2433b336eab44739a5c7bb468279fa41954a054a96f345e63f21371e1b
|