Polars

1.39.3 · active · verified Wed Mar 25

High-performance DataFrame library written in Rust. Zero required dependencies. Releases ~bi-weekly with breaking releases every ~6 months following SemVer. Current version is 1.39.3 (Mar 2026). Primary footgun: Polars has no row index — pandas muscle-memory causes constant errors.

Warnings

Install

Imports

Quickstart

Eager and lazy execution patterns. Always prefer lazy (scan_*) for large files.

import polars as pl

# Eager execution
df = pl.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie'],
    'score': [85, 92, 78],
    'dept': ['eng', 'eng', 'mkt']
})

result = (
    df
    .filter(pl.col('score') > 80)
    .group_by('dept')
    .agg(pl.col('score').mean().alias('avg_score'))
    .sort('avg_score', descending=True)
)

# Lazy execution (preferred for large data)
lazy_result = (
    pl.scan_csv('data.csv')
    .filter(pl.col('score') > 80)
    .group_by('dept')
    .agg(pl.col('score').mean())
    .collect()  # execute
)

view raw JSON →