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.0b3.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.0b3-cp39-abi3-win_arm64.whl (36.6 MB view details)

Uploaded CPython 3.9+Windows ARM64

polars_runtime_32-1.34.0b3-cp39-abi3-win_amd64.whl (40.8 MB view details)

Uploaded CPython 3.9+Windows x86-64

polars_runtime_32-1.34.0b3-cp39-abi3-manylinux_2_24_aarch64.whl (37.7 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.24+ ARM64

polars_runtime_32-1.34.0b3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (40.9 MB view details)

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

polars_runtime_32-1.34.0b3-cp39-abi3-macosx_11_0_arm64.whl (36.7 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

polars_runtime_32-1.34.0b3-cp39-abi3-macosx_10_12_x86_64.whl (40.3 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: polars_runtime_32-1.34.0b3.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.0b3.tar.gz
Algorithm Hash digest
SHA256 e7036b82f3769d5b9d18485675847fde6ff258e07cf77fa602c277990bac8f04
MD5 a6ceaa6663c198b0d81b40c9689a71cb
BLAKE2b-256 02477c770623fe25b4ba4b1fd617c1b3a2c9324104845a62da4d4750c5586ece

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_runtime_32-1.34.0b3.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.0b3-cp39-abi3-win_arm64.whl.

File metadata

File hashes

Hashes for polars_runtime_32-1.34.0b3-cp39-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 4ee623b9444a1d78fa92a9da1492aa231370bb19c630932e689dd150e923c00c
MD5 9c2cb8ad3ffecb27900b8dce752bc8ef
BLAKE2b-256 f98ad0c9ddd45c5d788cf0b0a421e50ad005e7241d964c8fc2c6904b8ed11cdb

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_runtime_32-1.34.0b3-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.0b3-cp39-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for polars_runtime_32-1.34.0b3-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 862defbb4304981c3fa22782574c34d234c12fc08d371ea30207fece2bf1e812
MD5 93ad81a57a74ed5fdc499014e3596c73
BLAKE2b-256 09bf5adb16a58b7c352bae51ede37a7feabf8375d5d6e1c50d9dd319e93c960a

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_runtime_32-1.34.0b3-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.0b3-cp39-abi3-manylinux_2_24_aarch64.whl.

File metadata

File hashes

Hashes for polars_runtime_32-1.34.0b3-cp39-abi3-manylinux_2_24_aarch64.whl
Algorithm Hash digest
SHA256 c5f59b1685263c0ce3d5d0a7beea9056bb42e4fbfe5497ab590d8b9c93f923ff
MD5 9c9e481adff9013daaa28df4e5f30bf2
BLAKE2b-256 787da705a122d9a73a77582d8715c65d851f2c17a116cc72ea256400554584ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_runtime_32-1.34.0b3-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.0b3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for polars_runtime_32-1.34.0b3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 09899a2321ba28efa39f56355af360c0b6ee9f0b5142a5d5278e181b3a402e14
MD5 460226a89711b3d5049fe0eddc11c6b3
BLAKE2b-256 4a0c0eb3c6872ebc462194cecb0c2af01a3c58711516aeee1b039887dcad5819

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_runtime_32-1.34.0b3-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.0b3-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for polars_runtime_32-1.34.0b3-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cfc6001ec26063ea1919249963f66d42acb12dbf93da9ddbfbaa36aaa0913b15
MD5 69b65db0ac60c41b374c9bd648d76595
BLAKE2b-256 012c5dd44e623593433d5fe5987f8e21651edfdf6d5a8fb849960d6ec09e9180

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_runtime_32-1.34.0b3-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.0b3-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for polars_runtime_32-1.34.0b3-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 51deb2e42ee4f839e03655ef27f6158279309e430776928c5b8edde2ddd51ee3
MD5 3e7a7f4d3c43b47d9ebbd7eaf723cce0
BLAKE2b-256 230da0c0005847c1aff5aebb8d5b50b99125fee8faa6eda586c0fc55640f7d5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for polars_runtime_32-1.34.0b3-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