✨ Enhancements
- add update method to ldf/df (#6787)
- accept separator for pivot and to_dummies (#6780)
- feat(rust, python) rename 'tz' to 'time_zone' in convert_time_zone and replace_time_zone (#6784)
- Allow other expressions for default arg in
map_dict
(#6781) - minor ergonomic affordance; allow
pl.concat
from generator expression (#6779) - rename with_time_zone to convert_time_zone and cast_time_zone to replace_time_zone (#6768)
- Add
map_dict
expression. (#5899) - support timezone in csv writer (#6722)
- default to 1d interval in date_range (#6771)
- parse timezone from Datetime (#6766)
- Add option to use PyArrow backed-extension arrays when … (#6756)
- formally support duration division (#6758)
- add argmin/max for utf8 data (#6746)
- Improve numpy support: conversion of numpy arrays with … (#6738)
- Improved assert equal messages (#6737)
- Support an ignore_nulls param for EWM calculations. (#5749) (#6742)
- scan_ds predicate pushdown for string cmp (#6734)
- don't require pyarrow for utf8 -> numpy conversion (#6733)
- More ergonomic
with_columns
args (#6686) - feat(python):Add return_as_string arg to DF.glimpse; default=False (#6678)
- better-characterise
NotFound
exceptions (#6670) - disallow with_time_zone from/to tz-naive (#6659)
- More ergonomic
select
args (#6667) - let cast_time_zone work on tz-naive and deprecate tz-localize (#6649)
- improved exceptions on attempt to use invalid schema/dtypes (#6653)
🐞 Bug fixes
- always rechunk if n_chunks > n_rows (#6786)
- fix ndjson empty array parsing (#6785)
- make some list expressions aware of groupby context (#6776)
- use explicit drop function node (#6769)
- don't set sorted flag if we reverse sort the left … (#6772)
- handle edge-case with string-literal replacement when the replace value looks like a capture group (#6765)
- respect skip_rows in glob parsing csv (#6754)
- Improve error message in DataFrame constructor (#6715)
- arrow map dtype conversion (#6732)
- respect 'None' in from_dicts (#6726)
- dedicated
rename
implementation. (#6688) - return correct display/repr names for NaN-related expressions (#6721)
- strftime with time zone directive (#6673)
- typing for
Series
methods that can returnNone
(#6690) - ensure that
iter_rows
always returns all values from all chunks/batches in accelerated codepath (#6708) - Support numpy ufunc when expression not first arg (#6675)
- Raise ValueError on adding float to Series of dtype date (#6677)
- remove uses of rayon global thread pool (#6682)
- true-divide output type (#6665)
- improve behaviour of dict-expansion (scalars) when mixed with numpy arrays (#6663)
- Preserve Expr name in
is_between
(#6661) - Tiny improvement of
Field
repr (#6640)
🛠️ Other improvements
- Update
mypy
to version1.0.0
(#6744) - integrate
ignore_nulls
into EWM parametric tests (#6751) - redirect tz_localize (#6749)
- Reorganize benchmark test folder (#6695)
- Split long test modules (namespaces) (#6668)
- Use pytest marker for slow tests (#6642)
- unify
nan_to_null
andnan_to_none
parameter names, expose to DataFrame init, add test coverage (#6637) - update
extend_constant
docs/typing (and test coverage) (#6646)
Thank you to all our contributors for making this release possible!
@AnatolyBuga, @MarcoGorelli, @MatveyF, @alexander-beedie, @ghuls, @jgmartin, @phaile2, @plaflamme, @ritchie46, @sorhawell, @stinodego, @yuntai and @zundertj