py-1.24.0
📦 polarsView on GitHub →
✨ 10 features🐛 14 fixes🔧 13 symbols
Summary
This release focuses heavily on performance improvements, particularly in the new streaming engine, and introduces several enhancements like lossy decoding for CSVs and DataFrame.write_iceberg. Numerous bug fixes address stability issues across various operations including rolling statistics and sink phases.
Migration Steps
- If you were relying on the old parameter name for `is_in`, update your code to use `nulls_equal` instead of `join_nulls` (as `join_nulls` was renamed in joins, and `is_in` adopted the new name).
✨ New Features
- Added lossy decoding to `read_csv` for non-utf8 encodings.
- Added `DataFrame.write_iceberg` functionality.
- Added 'nulls_equal' parameter to `is_in`.
- Improved numeric stability for `rolling_{std, var, cov, corr}` operations.
- Implemented IR Serde cross-filter.
- Gave priority to pycapsule interface in `from_dataframe`.
- Support writing `Time` type in
- Activated all optimizations in sinks.
- Added `AssertionError` variant to `PolarsError` in `polars-error`.
- Pass filter to inner readers in multiscan new streaming.
🐛 Bug Fixes
- Fixed Categorical min/max panicking when string cache is enabled.
- Prevented encoding IPC record batch twice.
- Ensured rewriting flag is respected in Node rewriter.
- Corrected skip batch predicate for partial statistics.
- Made the Parquet Sink properly phase aware.
- Avoided division by zero in partitioned group-by.
- Created new linearizer between rowwise new streaming sink phases.
- Prevented dropping rows in sinks between new streaming phases.
- Fixed incorrect lazy schema for `Expr.list.diff`.
- Fixed Duration Series arithmetic operations.
- Fixed unwrap None panic when filtering delta with missing columns.
- Used stable sort for rolling-groupby.
- Threw exception if dataframe is too large to be compatible with Excel.
- Addressed regression where `read_excel` did not handle URL paths correctly.
🔧 Affected Symbols
read_csvDataFrame.write_icebergis_inrolling_stdrolling_varrolling_covrolling_corrfrom_dataframePolarsErrorExpr.list.diffsink_parquetmerge_sortedread_excel