Skip to content

Commit 0242421

Browse files
authored
Merge branch 'main' into more-dedup-1
2 parents 7979909 + 8888e2c commit 0242421

File tree

4 files changed

+8
-7
lines changed

4 files changed

+8
-7
lines changed

narwhals/_arrow/namespace.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -425,10 +425,10 @@ def __call__(self: Self, df: ArrowDataFrame) -> Sequence[ArrowSeries]:
425425
if isinstance(self._otherwise_value, ArrowExpr):
426426
otherwise_series = self._otherwise_value(df)[0]
427427
else:
428-
otherwise_series = plx._create_series_from_scalar(
429-
self._otherwise_value, reference_series=condition.alias("literal")
428+
native_result = pc.if_else(
429+
condition_native, value_series_native, self._otherwise_value
430430
)
431-
otherwise_series._broadcast = True
431+
return [value_series._from_native_series(native_result)]
432432

433433
otherwise_series_native = extract_dataframe_comparand(
434434
len(df), otherwise_series, self._backend_version

narwhals/_dask/namespace.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ def __call__(self: Self, df: DaskLazyFrame) -> Sequence[dx.Series]:
367367
if isinstance(self._otherwise_value, DaskExpr):
368368
otherwise_value = self._otherwise_value(df)[0]
369369
else:
370-
otherwise_value = self._otherwise_value
370+
return [then_series.where(condition, self._otherwise_value)]
371371
(otherwise_series,) = align_series_full_broadcast(df, otherwise_value)
372372
validate_comparand(condition, otherwise_series)
373373
return [then_series.where(condition, otherwise_series)] # pyright: ignore[reportArgumentType]

narwhals/_pandas_like/namespace.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -446,10 +446,10 @@ def __call__(self: Self, df: PandasLikeDataFrame) -> Sequence[PandasLikeSeries]:
446446
if isinstance(self._otherwise_value, PandasLikeExpr):
447447
otherwise_series = self._otherwise_value(df)[0]
448448
else:
449-
otherwise_series = plx._create_series_from_scalar(
450-
self._otherwise_value, reference_series=condition.alias("literal")
449+
native_result = value_series_native.where(
450+
condition_native, self._otherwise_value
451451
)
452-
otherwise_series._broadcast = True
452+
return [value_series._from_native_series(native_result)]
453453
otherwise_series_native = extract_dataframe_comparand(
454454
df._native_frame.index, otherwise_series
455455
)

narwhals/_spark_like/utils.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from narwhals.utils import Version
2020

2121

22+
# NOTE: don't lru_cache this as `ModuleType` isn't hashable
2223
def native_to_narwhals_dtype(
2324
dtype: pyspark_types.DataType,
2425
version: Version,

0 commit comments

Comments
 (0)