Migrating to Polars py-1.37.0
Version py-1.37.0 introduces 1 breaking change. This guide details how to update your code.
Released: 1/10/2026
1
Breaking Changes
1
Migration Steps
128
Affected Symbols
⚠️ Check Your Code
If you use any of these symbols, you need to read this guide:
`SQL` interfaceis_nannumpy NaN->null conversionArrayFromIterObjectArrayNDJSON sink pipelineCSV sink pipeline`sink_*` functionsryuzmij.item() countgrouped first/lastschema inference`scan_csv/ndjson`wide data chunkingwrite/sink_ipcparquet files scanningcluster_with_columns optimization`pl.PartitionBy`ArrowStreamExportablesink_deltamusl buildsCSV COUNT(*)rolling_mean_bylazy collect_allNDJSON schema inferenceSQL JOIN columnsPython 3.9record batch size`expr.get`timezone validationIPC scan from S3CSV schema inferencemeta expressions hashing`SQLContext`Python globals`pl.Expr.(min|max)_by`MemSlice Debug implJSON encode/decode(U)Int128CategoricalEnumDecimalscatterCSV decompressionSeries sql methodfree-threadingBinaryDecimalarg_(min|max)str.json_decode`shift`Object data type`Series.arr.mean`scientific notationDecimals parsing`collect_batches`String is_in Parquet pushdown`struct.with_fields``join_asof`pyo3-polars FFI`DataFrame.cast`Parquet min/max statisticsin-memory joinIPC readerarithmetic with bools in listindex type castingstreaming non-strict hconcatjson u64 inferencehttp client timeoutsParquet BYTE_ARRAY statistics`upsample()`Extension types`DataFrame.estimated_size`Kahan sumparquet decodesinking parquetquantile midpoint interpolation`list.get`int -> categorical cast`list.eval``PythonScan`row metricsstreaming union node`map_groups`writing parquet`upsample` with `group_by``top_k` pruning`collect_schema`unpivot followed by join`arr` namespacearray column`LazyFrame.serialize()``map_(rows|elements)`pl.Object return dtypecargo sub-featuredeprecation warning displayrank null behaviour`QUALIFY` clause`SUBSTRING` functionSQL docsmixed-offset datetime parsinguser guidebare-metal docsmounted anonymous resultscloud-storage.pycredential parameter nameConfiguration optionsrust compilercsv test coverageCSV read size`lazy` parameter to `collect_all``ruff` actionpython lint targetpre-commitHTTP timeout for receiving response bodymypy lintAI contribution policyscan delta S3 testMemSlice Debug implbatched csv readerAnonymousScan functionsDeprecationWarning from pyparsingpyicebergvenv clearingPolars runtimes in CI'make requirements'compression level typesBreaking Changes
●Issue #1
Python 3.9 support has been dropped. Users on Python 3.9 must upgrade to Python 3.10 or later.
Migration Steps
- 1Upgrade Python to version 3.10 or later if currently using Python 3.9.
Release Summary
This release introduces significant performance improvements across various operations, including SQL ORDER BY clauses, NaN conversions, and streaming data processing. It also brings new features like `pl.PartitionBy`, enhanced SQL JOIN handling, and expanded data type support, alongside numerous bug fixes and documentation updates.
Need More Details?
View the full release notes and all changes for Polars py-1.37.0.
View Full Changelog