🚀 Performance improvements
- Delay selection expansion (#18011)
- Optimize strings slices (#17996)
- Make
.dt.weekday
20x faster (#17992) - Shrink
MemSliceInner
enum (#17991) - Push down slice with non-zero offset to Parquet (#17972)
- Reduce copy in
MemSlice
(#17983)
✨ Enhancements
- Add nested SQL join support (#18006)
- Push down slice with non-zero offset to Parquet (#17972)
- Add support for binary
size
method to Expr and Series "bin" namespace (#17924) - IO plugins (#17939)
- Add
SQL
interface support for PostgreSQL dollar-quoted string literals (#17940) - Allow for parsing parquet file where the time zone is stored as lowercase "utc" (#17925)
🐞 Bug fixes
- Add nested SQL join support (#18006)
- Respect
strict
argument (#17990) - Multi-output column expressions in frame
sort
method (#17947) - Fix Asof join by schema (#17988)
- Set default flags for FFI plugin (#17984)
- Fix glob resolution for Hugging Face (#17958)
- Several parquet reader/writer regressions (#17941)
- Incorrect filter on categorical columns from parquet files (#17950)
- SQL
COUNT(DISTINCT x)
should not include NULL values (#17930) - Default to
None
in pycapsule interface export (#17922)
📖 Documentation
- Fix aggregation guide discrepancies (#18003)
- Ensure
last
is never ambiguous withmax
(#17962) - Documentation for Arrow PyCapsule interface integration (#17935)
- Fix Hugging Face link in user guide (#17943)
🛠️ Other improvements
- Add unit tests for
str.contains_any
andstr.replace_many
(#17961) - Suggest
allow_null
as replacement (#17969) - Remove apply_generic, use unary_elementwise (#17902)
- Add general filters in Parquet (#17910)
Thank you to all our contributors for making this release possible!
@JamesCE2001, @MarcoGorelli, @alexander-beedie, @coastalwhite, @deanm0000, @deepyaman, @dependabot, @dependabot[bot], @henryharbeck, @kylebarron, @nameexhaustion, @ritchie46 and @wangxiaoying