⚠️ Deprecations
🚀 Performance improvements
- Rolling min/max for partially sorted data (#9819)
- Use
pyo3::intern
to avoid needlessly recreating PyString (#9853)
✨ Enhancements
- Name transpose from column (#9846)
- adds
SQRT
,CBRT
,PI
functions toSQLContext
(#9936) - Let qcut create evenly spaced probabilities (#9960)
- add freeze_panes option to write_excel (#9974)
- initial support for parsing the set of
jump
bytecode instructions required to reconstructand/or
logic (#9972) - suggest more efficient expression if user passes simple lambda to Expr.apply or DataFrame.apply (#9918)
- sorted flag on singletons (#9933)
- maintain sorted flag after partition_by (#9944)
- keep sorted flag in streaming left join (#9932)
- Add cloudpickle for serializing python UDFs (#9921)
- Optional three-valued logic for any/all (#9848)
- Add
Series.extend
(#9901) - pass through unknown schema in unnest (#9896)
- convenience support for parsing a list of SQL strings with
sql_expr
(#9881) - respect and allow more options in eager json parsing (#9882)
- allow set_sorted in streaming (#9876)
- Expr.cat.get_categories expression (#9869)
- add
LENGTH
andOCTET_LENGTH
string functions for SQL (#9860) polars_warn!
macro (#9868)
🐞 Bug fixes
- fix incorrect state in projection pushdown with joins (#9987)
- don't pass predicates referring to renamed literal… (#9965)
- fix regression in regex expansion (#9952)
- potential SO in csv infer schema (#9950)
- raise on unsupported transpose and object types (#9946)
- Fix as-of join when
by
groups are interleaved (#9938) - Handle
DataFrame.extend
extending by itself (#9897) - don't SO on align_frames (#9911)
- respect original series dtype when constructing
LitIter
(#9886) - Handle
DataFrame.vstack
stacking itself (#9895) - sum aggregation empty set is 0, not null (#9894)
- preserve expression aliases when parsing SQL with
pl.sql_expr
(#9875) - fmt unknown dtype (#9872)
🛠️ Other improvements
- Update autolabeler again (#9984)
- use param_name more in udfs for greater defensiveness (#9969)
- fix or/and docstrings to say bitwise, not logical (#9964)
- minor fix for
apply
docstring example text (#9953) - add note that
collect_all
returns result frames in the same order as input (#9951) - Improve docstrings for renaming operations (#9942)
- Move
sink_*
methods to IO chapter (#9939) - Add 'nearest' in Expr.interpolation docstring with an example (#9935)
- fix hyperlinks to pandas (#9937)
- Address ignored Ruff doc rules (#9919)
- improve
weekday
,day
,ordinal_day
examples (#9926) - deprecate
bins
argument and rename tobreaks
inSeries.cut
(#9913) - Use Pathlib everywhere (#9914)
- Add various unit tests (#9903)
- add big warnings about using apply (#9906)
- Update autolabeler (#9885)
- Workaround for PyCharm deprecation warning (#9907)
- Mention func_horizontal on deprecated func docstrings (#9863)
- note ordering guarantee for groupby (#9879)
- add logo
link
entry to sphinx conf and factor-out website root paths (#9864)
Thank you to all our contributors for making this release possible!
@0xbe7a, @JulianCologne, @MarcoGorelli, @OneRaynyDay, @SeanTroyUWO, @StefanBRas, @alexander-beedie, @c-peters, @fsimkovic, @ion-elgreco, @magarick, @mcrumiller, @messense, @ritchie46, @sorhawell, @stinodego, @thomasaarholt and @zundertj