# Polars 1.8.0 — Python Polars 1.8.0 - Product: Polars (https://whatsnew.fyi/product/polars) - Vendor: Polars - Date: 2024-09-23 - Version: 1.8.0 - Original notes: https://github.com/pola-rs/polars/releases/tag/py-1.8.0 - Permalink: https://whatsnew.fyi/product/polars/releases/1.8.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'. --- - **added** — Support arithmetic between Series with dtype list - **changed** — Relax schema alignment for parquet file list read - **changed** — Always preserve sorted flag for .dt.date - **changed** — Implement single inequality joins for join_where - **fixed** — DataFrame plot was raising when some extra keywords were passed to encodings - **fixed** — Respect strictness in list constructor - **fixed** — Properly broadcast array arithmetic - **fixed** — Throw error for comparison of unequal length series - **fixed** — Raise when parquet file has extra columns and no select() was done - **fixed** — Pass missing user params in write_csv - **fixed** — Improve join argument checks - **fixed** — Struct filter by index - **fixed** — Proper dtype casting for struct embedded categoricals in chunked categoricals - **fixed** — Remove panic in arr.to_struct - **fixed** — Allow empty sort by columns - **fixed** — Broadcast zip_with for structs - **fixed** — Fixed dropped/shifted rows in parquet scan with streaming=True - **fixed** — Fix cum_max using exception text of cum_min for invalid dtype - **fixed** — Fix accidental raise on shape 1 ##### ✨ Enhancements - Support arithmetic between Series with dtype list (#17823) - Relaxed schema alignment for parquet file list read (#18803) - Always preserve sorted flag for .dt.date (#18692) - Enable additional `ruff` lint rule sets (#18721) - Implement single inequality joins for join\_where (#18727) ##### 🐞 Bug fixes - DataFrame plot was raising when some extra keywords were passed to encodings (e.g. `x=alt.X(a, axis=alt.Axis(labelAngle=30))`) (#18836) - Respect strictness in list constructor (#18853) - Properly broadcast array arithmetic (#18851) - Throw error for comparison of unequal length series (#18816) - Raise when parquet file has extra columns and no `select()` was done (#18843) - Pass missing user params in `write_csv` (#18845) - Improve `join` argument checks (#18847) - Struct filter by index (#18778) - Proper dtype casting for struct embedded categoricals in chunked categoricals (#18815) - Fixed some error/assertion types (#18811) - Remove panic in `arr.to_struct` (#18804) - Allow empty sort by columns (#18774) - Broadcast zip\_with for structs (#18770) - Dropped/shifted rows in parquet scan with `streaming=True` (#18766) - Fix `cum_max` using exception text of `cum_min` for invalid dtype (#18780) - Fix accidental raise on shape 1 (#18748) ##### 📖 Documentation - Fix link to issue tracker and code snippet format in GPU docs (#18850) - Clarify documentation for `schema` in `read_csv` function (#18759) - Fix literal type mapping example in `lit` docstrings (#18756) - Refactor `docs` directory hierarchy (#18773) - Minor improvements to contributing guide (#18777) - Improve `over` docs, add example with `order_by` (#18796) - Add documentation for beta gpu support (#18762) ##### 🛠️ Other improvements - Re-export PyO3 in `polars-python` crate (#18835) - Make `NodeTraverser` struct public (#18822) - Add panic to unchecked DataFrame constructors in debug mode (#18807) - Fix parquet file metadata is dropped after first DSL->IR conversion (#18789) - Remove extra hashmap construction in new-streaming parquet (#18792) - Remove TODO comment regarding NumPy pinning (#18776) - Remove unused methods (#18744) - Make DataFrame a Vec of `Column` instead of `Series` (#18664) - Run benchmark on PR labeled 'needs-bench' (#18737) - Enable additional `ruff` lint rule sets (#18721) Thank you to all our contributors for making this release possible! @3ok, @Manishearth, @MarcoGorelli, @adamreeve, @alexander-beedie, @barak1412, @beckernick, @bradfordlynch, @coastalwhite, @deanm0000, @eitsupi, @i64, @itamarst, @mcrumiller, @nameexhaustion, @orlp, @r-brink, @ritchie46, @rodrigogiraoserrao, @squnit, @stinodego and @t-ded