Narwhals v1.24.0
Changes
- docs: fix api completness generation in CI (#1863)
✨ Enhancements
- feat: pyspark and duckdb selectors (#1853)
- feat: completely refactor alias tracking and support
nw.all
,nw.nth
, and selectors across the API (#1866) - feat: raise if expression changes length in
.over()
(#1867) - feat: add DuckDB
join_asof
(#1860) - feat: allow any ddof value for duckdb
var
andstd
(#1858) - feat: add DuckDB
Struct
dtype (#1851) - feat: add DuckDB
list.len
method (#1850) - feat: enforce that group-by aggregations actually aggregate (#1844)
- feat: add
mean_horizontal
for DuckDB (#1846)
🐞 Bug fixes
- fix: support various reductions in pyspark (#1870)
- fix: address
&
/|
operator errors for PySpark / chore: use F.lit in maybe_evaluate for pyspark, like we do for duckdb (#1872) - fix: allow any name in expression parsing (#1871)
- fix:
nw.selectors.by_dtype(nw.Datetime)
was excluding tz-aware for Polars (#1869) - patch: fix duckdb
narwhals_to_native_dtype
forInt32
andUInt32
(#1857) - fix: raise on selectors addition (#1854)
- fix: rename ewm and rolling
min_periods
tomin_samples
for polars 1.21 compatibility (#1864) - fix: address
&
/|
operator errors for PySpark / chore: use F.lit in maybe_evaluate for pyspark, like we do for duckdb (#1872)
🛠️ Other improvements
- test: skip Ibis tests if deps aren't installed, set defaults in
PandasLikeSeries.__array__
to fix cuDF is_in (#1862) - chore: parse strings as columns names at narwhals-level (#1856)
- chore: some typing and default removal (#1852)
- chore: validate expressions shape at narwhals/expr.py level (#1845)
- chore: simplify internal renaming in _pandas_like/series.py (#1847)
Thank you to all our contributors for making this release possible!
@FBruzzesi, @MarcoGorelli and @raisadz