# Polars 1.5.0 — Python Polars 1.5.0 - Product: Polars (https://whatsnew.fyi/product/polars) - Vendor: Polars - Date: 2024-08-14 - Version: 1.5.0 - Original notes: https://github.com/pola-rs/polars/releases/tag/py-1.5.0 - Permalink: https://whatsnew.fyi/product/polars/releases/1.5.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** — Improve binview extend/ifthenelse performance - **changed** — Start on better Parquet delta decoding - **changed** — Rechunk group-by __iter__ - **changed** — Tune jemalloc to not create muzzy pages - **changed** — Reduce default async thread count - **changed** — Make expensive selector expansion lazy - **changed** — Use single threaded algorithms if only 1 core given - **changed** — Use Arc> instead of Arc<[_]> for paths and hive partitions - **changed** — Use SIMD View from FixedSizeBinary - **changed** — Use bitmask to filter Parquet predicate-pushdown items - **changed** — Zerocopy buffers for FixedSizeBinary to BinaryView cast - **added** — Create literals for datetime/date expressions - **added** — Expose top-level has_header param for read_excel and read_ods - **changed** — Raise on invalid is_between and improve error message quality - **fixed** — Fix struct shift and list builder - **fixed** — Don't load Parquet nested metadata - **fixed** — Throw bigidx error for Parquet row-count - **fixed** — Fix unpivot on empty df - **fixed** — Ensure default values are included when saving/restoring the current Config state ##### 🚀 Performance improvements - Improve binview extend/ifthenelse (#18164) - Start on better Parquet delta decoding (#18049) - Rechunk group-by \_\_iter\_\_ (#18162) - Tune jemalloc to not create muzzy pages (#18148) - Reduce default async thread count (#18142) - Make expensive selector expansion lazy (#18118) - Use single threaded algorithms if only 1 core given (#18101) - Use `Arc>` instead of `Arc<[_]>` for paths and hive partitions (#18066) - SIMD View from `FixedSizeBinary` (#18059) - Use bitmask to filter Parquet predicate-pushdown items (#17993) - Zerocopy buffers for `FixedSizeBinary` to `BinaryView` cast (#18043) ##### ✨ Enhancements - Create literals for datetime/date expressions (#18184) - Create literals in 'datetime' expression (#18182) - Expose top-level "has\_header" param for `read_excel` and `read_ods` (#18078) - Raise on invalid 'is\_between' and improve error message quality (#18147) ##### 🐞 Bug fixes - Fix struct shift and list builder (#18189) - Don't load Parquet nested metadata (#18183) - Throw bigidx error for Parquet row-count (#18154) - Fix unpivot on empty df (#18179) - Don't vertically parallelize cse contexts (#18177) - Ensure default values are included when saving/restoring the current `Config` state (#18151) - Properly handle empty Parquet row groups with no dictionary (#18161) - Struct outer nullabillity (#18156) - Fix pyarrow predicate pushdown regression (#18145) - Prevent unwanted supertype cast in 'search\_sorted' (#18143) - Parquet with `filter=None` (#18139) - Don't raise when converting from pandas if index contains duplicate names when `include_index=False` (the default) (#18133) - Fix cast Float to String where Float is not turn to Integer before turning to String (#18123) - Don't remove leading whitespace in `read_csv` (#18131) - Py-polars compilation with no features (#18129) - String transform `to_titlecase` was too narrowly defined (#18122) - Reading Parquet with Null dictionary page (#18112) - When setting `write_excel` column totals, don't forget to include any row-total cols (#18042) - Incorrect lazy CSV `select(len())` for compressed files (#18067) - Fix `sink_ipc_cloud` panicking with runtime error (#18091) - Properly write Parquet for sliced lists (#18073) - Panic reading multiple CSV files from cloud (#18056) - Fix `CloudWriter` to use buffer before making requests (#18027) - Fix typos and remove trailing whitespace (#18024) - Handle `cfg(feature)` for `shrink_dtype` (#18038) ##### 📖 Documentation - Fix references to old methods in `lazy` docstring (#18178) - Include PyCapsule Interface in DataFrame and Series API docs (#18174) - Corrected example result in group\_by docs (#18169) - Mention 'Array' in data types overview (#18060) - Correct concat rechunk in user guide (#18080) - Fix typo in title of Hugging Face docs page (#18097) - Update pivot docstring for clarity (#18000) ##### 🛠️ Other improvements - Remove unneeded growable (#18165) - Update Cargo.lock to fix build error on Linux (#18153) - Remove Nth,Wildcard from ExprIR and make conversion falllible (#18115) Thank you to all our contributors for making this release possible! @EricTulowetzke, @KDruzhkin, @MarcoGorelli, @Vincenthays, @alexander-beedie, @coastalwhite, @davanstrien, @deanm0000, @ember91, @kylebarron, @mcrumiller, @nameexhaustion, @orlp, @philss, @ritchie46 and @rosstitmarsh