# Polars 1.36.0-beta.2 — Python Polars 1.36.0-beta.2 - Product: Polars (https://whatsnew.fyi/product/polars) - Vendor: Polars - Date: 2025-12-02 - Version: 1.36.0-beta.2 - Original notes: https://github.com/pola-rs/polars/releases/tag/py-1.36.0-beta.2 - Permalink: https://whatsnew.fyi/product/polars/releases/1.36.0-beta.2 - Labels: Pre-release 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'. --- - **added** — Add Extension types - **added** — Add SQL support for ROW_NUMBER, RANK, and DENSE_RANK functions - **added** — Add SQL support for named WINDOW references - **added** — Add BIT_NOT support to the SQL interface - **added** — Add LazyFrame.pivot - **added** — Add allow_empty flag to item - **added** — Add empty_as_null and keep_nulls flags to Expr.explode - **added** — Add empty_as_null and keep_nulls to {Lazy,Data}Frame.explode - **added** — Add having to group_by context - **added** — Add ignore_nulls to first / last - **added** — Add maintain_order to Expr.mode - **added** — Add quantile for missing temporals - **added** — Add leftmost option to str.replace_many / str.find_many / str.extract_many - **added** — Add strict parameter to pl.concat(how='horizontal') - **added** — Add support for Float16 dtype - **added** — Add unstable Schema.to_arrow - **changed** — Allow Expr.rolling in aggregation contexts - **changed** — Allow Expr.unique on List/Array with non-numeric types - **changed** — Allow glimpse to return a DataFrame - **changed** — Allow hash for all List dtypes ##### 🏆 Highlights - Add Extension types (#25322) ##### ✨ Enhancements - Add SQL support for `ROW_NUMBER`, `RANK`, and `DENSE_RANK` functions (#25409) - Add SQL support for named `WINDOW` references (#25400) - Add `BIT_NOT` support to the SQL interface (#25094) - Add `LazyFrame.pivot` (#25016) - Add `allow_empty` flag to `item` (#25048) - Add `empty_as_null` and `keep_nulls` flags to `Expr.explode` (#25289) - Add `empty_as_null` and `keep_nulls` to `{Lazy,Data}Frame.explode` (#25369) - Add `having` to `group_by` context (#23550) - Add `ignore_nulls` to `first` / `last` (#25105) - Add `maintain_order` to `Expr.mode` (#25377) - Add `quantile` for missing temporals (#25464) - Add leftmost option to `str.replace_many / str.find_many / str.extract_many` (#25398) - Add strict parameter to pl.concat(how='horizontal') (#25452) - Add support for `Float16` dtype (#25185) - Add unstable `Schema.to_arrow` (#25149) - Allow `Expr.rolling` in aggregation contexts (#25258) - Allow `Expr.unique` on `List`/`Array` with non-numeric types (#25285) - Allow `glimpse` to return a `DataFrame` (#24803) - Allow `hash` for all `List` dtypes (#25372) - Allow `implode` and aggregation in aggregation context (#25357) - Allow `slice` on scalar in aggregation context (#25358) - Allow arbitrary Expressions in "subset" parameter of `unique` frame method (#25099) - Allow arbitrary expressions as the `Expr.rolling` `index_column` (#25117) - Allow bare `.row` on a single-row DataFrame, equivalent to `.item` on a single-element DataFrame (#25229) - Allow elementwise `Expr.over` in aggregation context (#25402) - Allow pl.Object in pivot value (#25533) - Automatically Parquet dictionary encode floats (#25387) - Display function of streaming physical plan `map` node (#25368) - Documentation on Polars Cloud manifests (#25295) - Expose and document pl.Categories (#25443) - Expose fields for generating physical plan visualization data (#25562) - Extend SQL `UNNEST` support to handle multiple array expressions (#25418) - Improve SQL `UNNEST` behaviour (#22546) - Improve error message on unsupported SQL subquery comparisons (#25135) - Make DSL-hash skippable (#25140) - Minor improvement for `as_struct` repr (#25529) - Move GraphMetrics into StreamingQuery (#25310) - Raise suitable error on non-integer "n" value for `clear` (#25266) - Rewrite `IR::Scan` to `IR::DataFrameScan` in `expand_datasets` when applicable (#25106) - Set polars/ user-agent (#25112) - Streaming `{Expr,LazyFrame}.rolling` (#25058) - Support BYTE_ARRAY backed Decimals in Parquet (#25076) - Support `ewm_var/std` in streaming engine (#25109) - Support `unique_counts` for all datatypes (#25379) - Support additional forms of SQL "CREATE TABLE" statements (#25191) - Support arbitrary expressions in SQL `JOIN` constraints (#25132) - Support column-positional SQL "UNION" operations (#25183) - Support decimals in search_sorted (#25450) - Temporal `quantile` in rolling context (#25479) - Use reference to Graph pipes when flushing metrics (#25442) ##### 🚀 Performance improvements - Add parquet prefiltering for string regexes (#25381) - Add streaming native `LazyFrame.group_by_dynamic` (#25342) - Add streaming sorted Group-By (#25013) - Allow detecting plan sortedness in more cases (#25408) - Don't recompute full rolling moment window when NaNs/nulls leave the window (#25078) - Enable predicate expressions on unsigned integers (#25416) - Fast find start window in `group_by_dynamic` with large `offset` (#25376) - Faster kernels for rle_lengths (#25448) - Fuse positive `slice` into streaming `LazyFrame.rolling` (#25338) - Lazy gather for `{forward,backward}_fill` in group-by contexts (#25115) - Mark `Expr.reshape((-1,))` as row separable (#25326) - Mark output of more non-order-maintaining ops as unordered (#25419) - Optimize ipc stream read performance (#24671) - Reduce HuggingFace API calls (#25521) - Return references from `a _[Truncated at 4000 characters — full notes: https://github.com/pola-rs/polars/releases/tag/py-1.36.0-beta.2]_