🚀 Performance improvements
- improve dynamic groupby performance on sorted keys (#6599)
✨ Enhancements
- implement fill_null for list data (#6635)
- expression functions should be nullable (#6629)
- Implement unary plus operation on exprs and series (#6517)
- add streamable udfs (#6614)
- is_first for struct dtype (#6595)
- Added from_str_radix method to StringNameSpace that allows to parse strings from any base to i32 (#6570)
- Implement DataFrame Interchange Protocol through
pyarrow
(#6581) - improve predicate pushdown (#6579)
- raise error on invalid binary cmp (#6564)
🐞 Bug fixes
- make string_repr private (#6636)
- treat literal values consistently in
select
context, improve related typing (#6628) - Fix _repr_html_ double-height rows (#5645) (#6534)
- fix(rust, python) cast to and from fixed offsets (#6602)
- raise error on string numeric arithmetic (#6601)
- don't convert "ns"-precision temporal types via
pyarrow
(#6592) - partially assert sortedness in groupby dynamic (#6593)
- fix(rust, python); raise oob if negative index given to take (#6590)
- fix predicate pushdown key check (#6577)
- fix schema of apply with many inputs on empty df (#6571)
- let lhs determine struct order in supertype (#6572)
- ensure consistent handling of 1D numpy arrays with respect to other sequences (#6569)
- fix(rust, python) validate utc, fmt, and tz-aware in strptime (#6550)
- add strptime to filter boundary (#6560)
🛠️ Other improvements
- make string_repr private (#6636)
- add example of using
is_between
with string bounds, and extend test coverage for the same (#6627) - provide additional examples for
diff
methods (#6630) - Consistent handling of env vars (#6626)
- make
structify
behaviour experimental, while also extending it to aliased expressions (#6615) - Disallow clippy borrow deref ref (#6605)
- Update
ruff
version and some settings (#6588) - Add release flow info to contributing guide (#6480)
- Use
assert_series_equal
instead ofs.series_equal(...)
(#6582) - cleanup last vestiges of experimental kwargs setting (#6568)
- Use
assert_frame_equal
instead ofassert df.frame_equal(...)
(#6553) - Update to PyO3 to 0.18.0 (#6531)
Thank you to all our contributors for making this release possible!
@2-5, @MarcoGorelli, @abalkin, @alexander-beedie, @cojmeister, @dependabot, @dependabot[bot], @jjerphan, @plaflamme, @ritchie46 and @stinodego