Changes
✨ Enhancements
- feat: Add
{Expr,Series}.fill_nan(#3030) - feat: Allow
mode(..., keep="any")(#3019) - feat: add
DataFrame.top_kandLazyFrame.top_k(#2977) - feat(typing): Add
IntoBackendalias (#2971) - feat: Add
returns_scalarargument inmap_batches(#2998) - feat: Add
Series.from_iterable(#2933)
🐞 Bug fixes
- test(typing): Avoid masking fixed overloads (#3033)
- fix(typing): Avoid overlapping
DataFrame,LazyFrame(#2944) - fix:
map_batchesparsing result type (#3008) - fix: Add missing
v2constructor overrides (#3006) - ci: Remove
duckdbnightly from cov (#3015) - fix: expr & series bool ambiguity (#2985)
- fix:
GroupBywith mixed length exprs as keys (#3004) - fix: Workaround for
clipwith modin[pyarrow] and cudf backends (#2986)
📖 Documentation
- docs: fix typo, remove outdated "you can only execute this once" (#3035)
- feat(typing): Add
IntoBackendalias (#2971) - docs: Fix indentation of coalesce example in doc string (#3011)
- docs: Include
DTypemethods, properties in API Reference (#2999) - fix(tests): ensure doctests work on windows (#2994)
🛠️ Other improvements
- chore: xfail top k multiple in old polars (#3034)
- chore: introduce Expr._with_unary / _expr_with_n_ary_op (#3021)
- chore: update
ruffconfig (#3009) - chore: replace
zipwithzip_strict(#3003) - test: reuse
eager_backendfixture (#3005) - fix(tests): ensure doctests work on windows (#2994)
- test: Simplify
read_scan_test, spark session (#3024)
Thank you to all our contributors for making this release possible!
@FBruzzesi, @MarcoGorelli, @camriddell, @dangotbanned, @kklein and @raisadz