Skip to main content

Blazingly fast DataFrame library

Project description

Polars logo

Documentation: Python - Rust - Node.js - R | StackOverflow: Python - Rust - Node.js - R | User guide | Discord

Polars: Extremely fast Query Engine for DataFrames, written in Rust

Polars is an analytical query engine written for DataFrames. It is designed to be fast, easy to use and expressive. Key features are:

  • Lazy | Eager execution
  • Streaming (larger-than-RAM datasets)
  • Query optimization
  • Multi-threaded
  • Written in Rust
  • SIMD
  • Powerful expression API
  • Front end in Python | Rust | NodeJS | R | SQL
  • Apache Arrow Columnar Format

To learn more, read the user guide.

Performance 🚀🚀

Blazingly fast

Polars is very fast. In fact, it is one of the best performing solutions available. See the PDS-H benchmarks results.

Lightweight

Polars is also very lightweight. It comes with zero required dependencies, and this shows in the import times:

  • polars: 70ms
  • numpy: 104ms
  • pandas: 520ms

Handles larger-than-RAM data

If you have data that does not fit into memory, Polars' query engine is able to process your query (or parts of your query) in a streaming fashion. This drastically reduces memory requirements, so you might be able to process your 250GB dataset on your laptop. Collect with collect(engine='streaming') to run the query streaming.

Setup

Python

Install the latest Polars version with:

pip install polars

See the User Guide for more details on optional dependencies

To see the current Polars version and a full list of its optional dependencies, run:

pl.show_versions()

Contributing

Want to contribute? Read our contributing guide.

Managed/Distributed Polars

Do you want a managed solution or scale out to distributed clusters? Consider our offering and help the project!

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:

  1. Install the latest Rust compiler
  2. Install maturin: pip install maturin
  3. cd py-polars and choose one of the following:
    • make build, slow binary with debug assertions and symbols, fast compile times
    • make build-release, fast binary without debug assertions, minimal debug symbols, long compile times
    • make build-nodebug-release, same as build-release but without any debug symbols, slightly faster to compile
    • make build-debug-release, same as build-release but with full debug symbols, slightly slower to compile
    • make build-dist-release, fastest binary, extreme compile times

By default the binary is compiled with optimizations turned on for a modern CPU. Specify LTS_CPU=1 with the command if your CPU is older and does not support e.g. AVX2.

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.

Using custom Rust functions in Python

Extending Polars with UDFs compiled in Rust is easy. We expose PyO3 extensions for DataFrame and Series data structures. See more in https://github.com/pola-rs/polars/tree/main/pyo3-polars.

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 polars-u64-idx.

Don't use this unless you hit the row boundary as the default build of Polars is faster and consumes less memory.

Legacy

Do you want Polars to run on an old CPU (e.g. dating from before 2011), or on an x86-64 build of Python on Apple Silicon under Rosetta? Install pip install polars-lts-cpu. This version of Polars is compiled without AVX target features.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

polars_runtime_32-1.34.0b4.tar.gz (4.9 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

polars_runtime_32-1.34.0b4-cp39-abi3-win_arm64.whl (35.8 MB view details)

Uploaded CPython 3.9+Windows ARM64

polars_runtime_32-1.34.0b4-cp39-abi3-win_amd64.whl (40.0 MB view details)

Uploaded CPython 3.9+Windows x86-64

polars_runtime_32-1.34.0b4-cp39-abi3-manylinux_2_24_aarch64.whl (37.0 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.24+ ARM64

polars_runtime_32-1.34.0b4-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (40.2 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

polars_runtime_32-1.34.0b4-cp39-abi3-macosx_11_0_arm64.whl (35.9 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

polars_runtime_32-1.34.0b4-cp39-abi3-macosx_10_12_x86_64.whl (39.6 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file polars_runtime_32-1.34.0b4.tar.gz.

File metadata

  • Download URL: polars_runtime_32-1.34.0b4.tar.gz
  • Upload date:
  • Size: 4.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for polars_runtime_32-1.34.0b4.tar.gz
Algorithm Hash digest
SHA256 a893f7fec52e3c5fb18f7e64877188e2b7b045d28269c85cc9955a226fe59802
MD5 bc43dd81d9686baf546d15e25c00a490
BLAKE2b-256 3a234f4dfb9c0c2664cf171cef859f57e547f6740593d8baa9e2c8ca308890cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_runtime_32-1.34.0b4.tar.gz:

Publisher: release-python.yml on pola-rs/polars

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_runtime_32-1.34.0b4-cp39-abi3-win_arm64.whl.

File metadata

File hashes

Hashes for polars_runtime_32-1.34.0b4-cp39-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 30624ac22e3c09f88d27fab62dc1966d312d3bd54750c67c98a950830ea13cb5
MD5 211d0965252e0f3ceb000260323a2c29
BLAKE2b-256 c5db84d7d77433639ae5d1c3b5bb1f5329c6086c08b8fd38987b325258d1499d

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_runtime_32-1.34.0b4-cp39-abi3-win_arm64.whl:

Publisher: release-python.yml on pola-rs/polars

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_runtime_32-1.34.0b4-cp39-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for polars_runtime_32-1.34.0b4-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9dd0ea6a32123d1607e2b00ccd4a692ac2cb7501c0a17c59c39a1a9abf213f8c
MD5 fd740b4d64b0ca41e295179212a80078
BLAKE2b-256 22e160155cf4b6460a18ad852b66f5174913a9cb2f00056b3b349ba8a232701b

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_runtime_32-1.34.0b4-cp39-abi3-win_amd64.whl:

Publisher: release-python.yml on pola-rs/polars

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_runtime_32-1.34.0b4-cp39-abi3-manylinux_2_24_aarch64.whl.

File metadata

File hashes

Hashes for polars_runtime_32-1.34.0b4-cp39-abi3-manylinux_2_24_aarch64.whl
Algorithm Hash digest
SHA256 77962112152ffb4b6c67dc27242a882f6c492cd218539a5e57ccbaf083d269b0
MD5 cab96cd5e07c4122dfecfd8f126f37fd
BLAKE2b-256 30bc3d5785e4f0ceb4074afad4580ffcd1d648c796d493b9429929c386d57efc

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_runtime_32-1.34.0b4-cp39-abi3-manylinux_2_24_aarch64.whl:

Publisher: release-python.yml on pola-rs/polars

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_runtime_32-1.34.0b4-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for polars_runtime_32-1.34.0b4-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b4853009d9b016019b4f798b7b33d6d5ffacd31e92a3ef08892cfcfccec4a3ca
MD5 bba75c680481b707e8baaead4af3d40f
BLAKE2b-256 65a8f6e2991e0fd5d18c8430b5a0262467cac858e36286ef90b35488915d7dd6

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_runtime_32-1.34.0b4-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-python.yml on pola-rs/polars

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_runtime_32-1.34.0b4-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for polars_runtime_32-1.34.0b4-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1568592551ffdfc2501a1bf5ae28ea232d99655ce5fc5a065e1befe354e285e4
MD5 46c5abc180f38a47f19f6d359ff279f3
BLAKE2b-256 bc5b8a1f9850f3e3545c03afdef5a4a12b7d64e543fb072c091ec95f8b1a863c

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_runtime_32-1.34.0b4-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: release-python.yml on pola-rs/polars

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polars_runtime_32-1.34.0b4-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for polars_runtime_32-1.34.0b4-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3949324281072749bccdd606a1da3d7e7d0ffc15b8ba249909f7ba87f6d52e93
MD5 6b5a7a11c83499dd46abba11d286db61
BLAKE2b-256 1249169808f6c44ea3211d04e619adbb285fd9b6ce65ef781363569ace2a56e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_runtime_32-1.34.0b4-cp39-abi3-macosx_10_12_x86_64.whl:

Publisher: release-python.yml on pola-rs/polars

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page