Python Polars 0.18.1
github-actions
released this
07 Jun 18:08
·
3320 commits
to refs/heads/main
since this release
🏆 Highlights
- add dedicated
selectors
module, consolidating/expanding existing selector capabilities (#9204)
🚀 Performance improvements
✨ Enhancements
- add join cardinality validation (#9278)
- implement set operations for selector API (#9276)
- keep sorted flag after Expr::truncate (#9275)
- add "sql_expr" function (#9248)
- rewrite correlation functions to expression architecture (#9258)
- keep sorted flag on
offset_by
(#9253) - add expression json serde (#9236)
- add intersection primitive for selector API (#9240)
- building blocks for expression expansion sets (#9231)
- Add ddof option to rolling_var and rolling_std (#8957)
- immediately flatten nested unions (#9220)
- Allow empty
select
/with_columns
/groupby
(#9205) - add a
datetime
selector (#9212) - support float expression on integers (#9210)
- add dedicated
selectors
module, consolidating/expanding existing selector capabilities (#9204) - add binary to list<u8> cast (#9161)
- groupby_dynamic by quarter. (#6842)
- add arr.unique expression (#9159)
- implement explode for DataType::Array (#9157)
Decimal
type:sum
,min
,max
aggregations inselect
andagg
context. (#9135)- Decimal arithmetic (#9123)
- support decimals as cast types in csv parser (#9121)
- Improve error handling for
repeat
(#9117)
🐞 Bug fixes
- fix pyarrow dataset literal filter (#9274)
- raise on invalid sort_by (#9262)
- match missing Array and Struct classes in FromPyObject (#9271)
- correct ne/e_missing schema (#9257)
- fix cached reproject offsets (#9254)
- delay opening files in streaming engine (#9251)
- ensure agg(F(lit)) == lit (#9222)
- don't SO on concat(expressions) (#9214)
- df.apply first rechunk (#9211)
- clip window_size to length in rolling_apply (#9209)
- raise error on invalid df.apply return (#9207)
- Handle edge cases of named
select
input (#9198) - rolling_apply window_size == len (#9181)
- respect time zone in strptime/to_datetime when exact=False (#9171)
- make null chunking behavior equal to other dtypes (#9176)
- return single numpy array in Array dtype -> numpy (#9164)
- fix regression in boolean nulls comparison (#9142)
- fix struct null_count if fields are null arrays (#9151)
- Fix DataFrame.to_arrow() for 0x0 dataframes (#9144)
- categorical construction from null values (#9145)
- let
apply
caller determine if length needs to be checked. (#9140) - struct
is_in
should upcast numeric types (#9110) - Restore functionality of
name
arg fordate_range
(#9107) - bubble up dtype when converting from arrow (#9120)
🛠️ Other improvements
- Fix grammar and add periods in
Expr.over
docs (#9244) - Update linting for
py-polars
crate (#9242) - Deprecate
exprs=...
input forselect
/with_columns
/agg
/struct
(#9219) - Enable parallelization in Python Windows tests (#9232)
- Use pytest
tmp_path
(#9206) - Build docs in parallel (#9229)
- Unify Python docs workflows (#9228)
- add docstring to __array__ methods (#8055)
- Update expr parsing util to return
PyExpr
(#9166) - update pyo3 requirement from 0.18 to 0.19 (#9155)
- clarify how the windows are formed in the rolling_* functions (#9192)
- stabilise polars importtime check (#9196)
- fix "to_decimal" docstring (#9197)
- note that
exact=False
is a performance footgun (#9186) - change decimal inference and argument order (#9133)
- Cache Rust build on main branch (#9130)
- Improve df.clear() docs (#8809)
- Bump
maturin
to1.0.1
(#9115) - Bump lint dependency versions (#9116)
Thank you to all our contributors for making this release possible!
@DeflateAwning, @MarcoGorelli, @alexander-beedie, @ankane, @avimallu, @bfeif, @dependabot, @dependabot[bot], @jonashaag, @josh, @lorentzenchr, @magarick, @ritchie46, @stinodego, @universalmind303 and @zundertj