# Polars 1.39.0 — Python Polars 1.39.0 - Product: Polars (https://whatsnew.fyi/product/polars) - Vendor: Polars - Date: 2026-03-12 - Version: 1.39.0 - Original notes: https://github.com/pola-rs/polars/releases/tag/py-1.39.0 - Permalink: https://whatsnew.fyi/product/polars/releases/1.39.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **changed** — Lower arg_{min,max} to streaming engine - **changed** — Additional IR slice pushdown after filter pushdown - **changed** — Streaming first/last on Enum through physical - **changed** — Fast filter for scalar predicates - **changed** — Allow SimpleProjection in streaming engine to rename - **changed** — Streaming cloud download for scan_csv - **changed** — Drop columns only needed for predicates after the predicate is applied - **changed** — Run projection pushdown after predicate pushdown - **changed** — Comparison literal downcasting - **changed** — Add dynamic predicates for TopK - **changed** — Increase minimum default parquet row group prefetch to 8 - **changed** — Partial predicate conversion to PyArrow - **changed** — Streaming cloud download for scan_ndjson and scan_lines - **changed** — Improve CSV and NDJSON cloud sink performance - **changed** — Tune cloud writer performance - **changed** — Allow parallel InMemorySinks in streaming engine - **added** — Support Expr for holidays in business day calculations - **added** — Parameter for pivot to always include value column name - **added** — Extend Expr.reinterpret to all numeric types of the same size - **added** — Add missing_columns parameter to scan_csv ##### 🚀 Performance improvements - Lower `arg_{min,max}` to streaming engine (#26845) - Additional IR slice pushdown after filter pushdown (#26815) - Streaming first/last on Enum through physical (#26783) - Fast filter for scalar predicates (#26745) - Allow SimpleProjection in streaming engine to rename (#26709) - Streaming cloud download for `scan_csv` (#26637) - Drop columns only needed for predicates after the predicate is applied (#26703) - Run projection pushdown after predicate pushdown (#26688) - Comparison literal downcasting (#26663) - Add dynamic predicates for TopK (#26495) - Increase minimum default parquet row group prefetch to 8 (#26632) - Partial predicate conversion to PyArrow (#26567) - Streaming cloud download for `scan_ndjson` / `scan_lines` (#26563) - Grab GIL fewer times during Object join materialization (#26587) - Improve CSV and NDJSON cloud sink performance (#26545) - Tune cloud writer performance (#26518) - Allow parallel InMemorySinks in streaming engine (#26501) - Add streaming `AsOf` join node (#26398) - Don't always rechunk on gather of nested types (#26478) ##### ✨ Enhancements - Support Expr for holidays in business day calculations (#26193) - Parameter for pivot to always include value column name (#26730) - Raise error in `.collect_schema()` when `arr.get()` is out-of-bounds (#26866) - Extend `Expr.reinterpret` to all numeric types of the same size (#26401) - Add missing\_columns parameter to scan\_csv (#26787) - Clear no-op scan projections (#26858) - Support nested datatypes for `{min,max}_by` (#26849) - Support SQL `ARRAY` init from typed literals (#26622) - Accept table identifier string in `scan_iceberg()` (#26826) - Add a convenience `make fresh` command to the Makefile (#26809) - Expose "use\_zip64" Workbook option for `write_excel` (#26699) - Add unstable `LazyFrame.sink_iceberg` (#26799) - Add maintain order argument on implode (#26782) - Speed up casting primitive to bool by at least 2x (#26823) - Support ASCII format table input to `pl.from_repr` (#26806) - Enable rowgroup skipping for float columns (#26805) - Add expression context to errors (#26716) - Add Decimal support for product reduction (#26725) - Support all Iceberg V2 arrow types in sink\_parquet arrow\_schema parameter (#26669) - Re-work behavior of arrow\_schema parameter on sink\_parquet (#26621) - Add `contains_dtype()` method for `Schema` (#26661) - Implement `truncate` as a "to\_zero" rounding mode (#26677) - More generic streaming GroupBy lowering (#26696) - Create an `Alignment` TypeAlias (#26668) - Add basic MemoryManager to track buffered dataframes for out-of-core support later (#26443) - Add `truncate` Expression for numeric values (#26666) - Better error messages for hex literal conversion issues in the SQL interface (#26657) - Add SQL support for `LPAD` and `RPAD` string functions (#26631) - Support SQL "FROM-first" `SELECT` query syntax (#26598) - Improve `base_type` typing (#26602) - Bump Chrono to 0.4.24, enabling stricter parsing of `%.3f`/`%.6f`/`%.9f` specifiers (#26075) - Expose unstable `assert_schema_equal` in py-polars (#24869) - Allow parsing of compact ISO 8601 strings (#24629) - Add optional "label" param to DataFrame `corr` (#26588) - Streaming cloud download for `scan_ndjson` / `scan_lines` (#26563) - Configuration to cast integers to floats in `cast_options` for `scan_parquet` (#26492) - Add escaping to quotes and newlines when reading JSON object into string (#26578) - Standardise on RFC-5545 when doing datetime arithmetic on timezone-aware datetimes (#26425) - Support `sas_token` in Azure credential provider (#26565) - Relax SQL requirement for derived tables and subqueries to have aliases (#26543) - Add polars-config and pl.Config.reload\_env\_vars() (#26524) - Record path for object store error raised from sinks (#26541) - Use CRC64NVME for checksum in aws sinks (#26522) - Add `get()` for binary Series (#26514) - Add streaming `AsOf` join node (#26398) - Add primitive filter -> agg low _[Truncated at 4000 characters — full notes: https://github.com/pola-rs/polars/releases/tag/py-1.39.0]_