This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 2.1.0 instead.
Reason given by maintainers: regression
Polars
Python Documentation | Rust Documentation | User Guide | Discord | StackOverflow
Blazingly fast DataFrames in Rust, Python & Node.js
Polars is a blazingly fast DataFrames library implemented in Rust using Apache Arrow Columnar Format as memory model.
- Lazy | eager execution
- Multi-threaded
- SIMD
- Query optimization
- Powerful expression API
- Rust | Python | ...
To learn more, read the User Guide.
>>> import polars as pl
>>> df = pl.DataFrame(
... {
... "A": [1, 2, 3, 4, 5],
... "fruits": ["banana", "banana", "apple", "apple", "banana"],
... "B": [5, 4, 3, 2, 1],
... "cars": ["beetle", "audi", "beetle", "beetle", "beetle"],
... }
... )
# embarrassingly parallel execution
# very expressive query language
>>> (
... df
... .sort("fruits")
... .select(
... [
... "fruits",
... "cars",
... pl.lit("fruits").alias("literal_string_fruits"),
... pl.col("B").filter(pl.col("cars") == "beetle").sum(),
... pl.col("A").filter(pl.col("B") > 2).sum().over("cars").alias("sum_A_by_cars"), # groups by "cars"
... pl.col("A").sum().over("fruits").alias("sum_A_by_fruits"), # groups by "fruits"
... pl.col("A").reverse().over("fruits").alias("rev_A_by_fruits"), # groups by "fruits
... pl.col("A").sort_by("B").over("fruits").alias("sort_A_by_B_by_fruits"), # groups by "fruits"
... ]
... )
... )
shape: (5, 8)
┌──────────┬──────────┬──────────────┬─────┬─────────────┬─────────────┬─────────────┬─────────────┐
│ fruits ┆ cars ┆ literal_stri ┆ B ┆ sum_A_by_ca ┆ sum_A_by_fr ┆ rev_A_by_fr ┆ sort_A_by_B │
│ --- ┆ --- ┆ ng_fruits ┆ --- ┆ rs ┆ uits ┆ uits ┆ _by_fruits │
│ str ┆ str ┆ --- ┆ i64 ┆ --- ┆ --- ┆ --- ┆ --- │
│ ┆ ┆ str ┆ ┆ i64 ┆ i64 ┆ i64 ┆ i64 │
╞══════════╪══════════╪══════════════╪═════╪═════════════╪═════════════╪═════════════╪═════════════╡
│ "apple" ┆ "beetle" ┆ "fruits" ┆ 11 ┆ 4 ┆ 7 ┆ 4 ┆ 4 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤
│ "apple" ┆ "beetle" ┆ "fruits" ┆ 11 ┆ 4 ┆ 7 ┆ 3 ┆ 3 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤
│ "banana" ┆ "beetle" ┆ "fruits" ┆ 11 ┆ 4 ┆ 8 ┆ 5 ┆ 5 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤
│ "banana" ┆ "audi" ┆ "fruits" ┆ 11 ┆ 2 ┆ 8 ┆ 2 ┆ 2 │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤
│ "banana" ┆ "beetle" ┆ "fruits" ┆ 11 ┆ 4 ┆ 8 ┆ 1 ┆ 1 │
└──────────┴──────────┴──────────────┴─────┴─────────────┴─────────────┴─────────────┴─────────────┘
Performance 🚀🚀
Polars is very fast, and in fact is one of the best performing solutions available. See the results in h2oai's db-benchmark.
Python setup
Install the latest polars version with:
$ pip3 install -U polars[pyarrow]
Releases happen quite often (weekly / every few days) at the moment, so updating polars regularly to get the latest bugfixes / features might not be a bad idea.
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.
polars = { git = "https://github.com/pola-rs/polars", rev = "<optional git tag>" }
Rust version
Required Rust version >=1.58
Documentation
Want to know about all the features Polars supports? Read the docs!
Python
- Installation guide:
$ pip3 install polars - Python documentation
- User guide
Rust
Node
- Installation guide:
$ yarn install nodejs-polars - Node documentation
- User guide
Contribution
Want to contribute? Read our contribution guideline.
[Python]: compile polars from source
If you want a bleeding edge release or maximal performance you should compile polars from source.
This can be done by going through the following steps in sequence:
- Install the latest Rust compiler
- Install maturin:
$ pip3 install maturin - Choose any of:
- Fastest binary, very long compile times:
$ cd py-polars && maturin develop --rustc-extra-args="-C target-cpu=native" --release
- Fast binary, Shorter compile times:
$ cd py-polars && maturin develop --rustc-extra-args="-C codegen-units=16 -C lto=thin -C target-cpu=native" --release
- Fastest binary, very long compile times:
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.
Arrow2
Polars has transitioned to arrow2. Arrow2 is a faster and safer implementation of the Apache Arrow Columnar Format. Arrow2 also has a more granular code base, helping to reduce the compiler bloat.
Use custom Rust function in python?
See this example.
Going big...
Do you expect more than 2^32 ~4,2 billion rows? Compile polars with the bigidx feature flag.
Or for python users install $ pip install -U polars-u64-idx.
Don't use this unless you hit the row boundary as the default polars is faster and consumes less memory.
Acknowledgements
Development of Polars is proudly powered by
Sponsors
Metadata
Release files for polars 0.13.47
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| polars-0.13.47.tar.gz | 903.2 kB | Without provenance | Details for polars-0.13.47.tar.gz |
Built distributions (wheels)
| File | Actions Reset | |||
|---|---|---|---|---|
| polars-0.13.47-cp37-abi3-win_amd64.whl | CPython 3.7 | abi3 | Windows x86-64 | Details for polars-0.13.47-cp37-abi3-win_amd64.whl |
| polars-0.13.47-cp37-abi3-manylinux_2_24_aarch64.whl | CPython 3.7 | abi3 | Linux glibc 2.24+ ARM64 | Details for polars-0.13.47-cp37-abi3-manylinux_2_24_aarch64.whl |
| polars-0.13.47-cp37-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl | CPython 3.7 | abi3 | Linux glibc 2.12+ x86-64 | Details for polars-0.13.47-cp37-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl |
| polars-0.13.47-cp37-abi3-macosx_11_0_arm64.whl | CPython 3.7 | abi3 | macOS 11.0+ ARM64 | Details for polars-0.13.47-cp37-abi3-macosx_11_0_arm64.whl |
| polars-0.13.47-cp37-abi3-macosx_10_7_x86_64.whl | CPython 3.7 | abi3 | macOS 10.7+ x86-64 | Details for polars-0.13.47-cp37-abi3-macosx_10_7_x86_64.whl |
Total release size: 58.4 MB
Release files / polars-0.13.47.tar.gz
| Download URL | polars-0.13.47.tar.gz |
|---|---|
| Size | 903.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
06046390f647616358b9ab942b64d7861141adf626dcd6ad7e25368862f33b91
|
|
BLAKE2b-256 checksum How to use checksums |
6690b9ccf8f95de29b22f183561b897f2414f34c85c619c57978771a44bb576b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/0.12.11-beta.1
|
Release files / polars-0.13.47-cp37-abi3-win_amd64.whl
| Download URL | polars-0.13.47-cp37-abi3-win_amd64.whl |
|---|---|
| Size | 13.0 MB |
| Tags | CPython 3.7 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
111e53f3fe1388dfa2cf986412a2f36fe9162e11e3899af35762fa81b0402c86
|
|
BLAKE2b-256 checksum How to use checksums |
9d10be8948b5654009addcb197126b1e8e046b5d76043f883da093032a2dcd01
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/0.12.1
|
Release files / polars-0.13.47-cp37-abi3-manylinux_2_24_aarch64.whl
| Download URL | polars-0.13.47-cp37-abi3-manylinux_2_24_aarch64.whl |
|---|---|
| Size | 10.6 MB |
| Tags | CPython 3.7 Linux glibc 2.24+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
e5b63314babc60c9614e7f1c9d735116cf3548482571b91551b60b214d11c1fa
|
|
BLAKE2b-256 checksum How to use checksums |
6c6c6343dd16e07c157253da273687840d359a58b5f37fa55ff2e37802f4fec1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/0.12.1
|
Release files / polars-0.13.47-cp37-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
| Download URL | polars-0.13.47-cp37-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl |
|---|---|
| Size | 12.2 MB |
| Tags | CPython 3.7 Linux glibc 2.12+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
8d29f925d832c6ec830b86e4ae4408292ed4a9638a320648622cc36fa1c05cfe
|
|
BLAKE2b-256 checksum How to use checksums |
1a60be57c0d462a757d2e7aa85f5fa7ecdf41ed660ee6e788d825f5dd939a3b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/0.12.11-beta.1
|
Release files / polars-0.13.47-cp37-abi3-macosx_11_0_arm64.whl
| Download URL | polars-0.13.47-cp37-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 9.9 MB |
| Tags | CPython 3.7 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
571bbe50f77dcc8af8af6bb12994f6f59dae1d2c72d4f7feedc0c0b24ad1d0d6
|
|
BLAKE2b-256 checksum How to use checksums |
f09daa8380e3aee1f4b4464513f75f8e54288ce6e7b897c1e1b74533d6b0bba9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/0.12.1
|
Release files / polars-0.13.47-cp37-abi3-macosx_10_7_x86_64.whl
| Download URL | polars-0.13.47-cp37-abi3-macosx_10_7_x86_64.whl |
|---|---|
| Size | 11.7 MB |
| Tags | CPython 3.7 abi3 macOS 10.7+ x86-64 |
|
SHA-256 checksum How to use checksums |
8ab6aee6fc69b40ec9c52de9d02fb827f60095d74b64929984ee7a6d489fd1ac
|
|
BLAKE2b-256 checksum How to use checksums |
37f8682f214f34616a6ccd1dbf55564a6ea079a8875ce9f9787fc405b1dcb4f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/0.12.1
|
Security for polars 0.13.47
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.