Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions narwhals/_arrow/dataframe.py
Original file line number Diff line number Diff line change
Expand Up @@ -367,7 +367,7 @@ def select(self: ArrowDataFrame, *exprs: ArrowExpr) -> ArrowDataFrame:
)
names = [s.name for s in new_series]
reshaped = align_series_full_broadcast(*new_series)
df = pa.Table.from_arrays([s._native_series for s in reshaped], names=names)
df = pa.Table.from_arrays([s.native for s in reshaped], names=names)
return self._from_native_frame(df, validate_column_names=True)

def _extract_comparand(self, other: ArrowSeries) -> ArrowChunkedArray:
Expand Down Expand Up @@ -438,21 +438,21 @@ def join(
self.with_columns(
plx.lit(0, None).alias(key_token).broadcast(ExprKind.LITERAL)
)
._native_frame.join(
.native.join(
other.with_columns(
plx.lit(0, None).alias(key_token).broadcast(ExprKind.LITERAL)
)._native_frame,
).native,
keys=key_token,
right_keys=key_token,
join_type="inner",
right_suffix=suffix,
)
.drop([key_token]),
.drop([key_token])
)

return self._from_native_frame(
self.native.join(
other._native_frame,
other.native,
keys=left_on or [], # type: ignore[arg-type]
right_keys=right_on, # type: ignore[arg-type]
join_type=how_to_join_map[how],
Expand Down
10 changes: 5 additions & 5 deletions narwhals/_arrow/expr.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ def func(df: ArrowDataFrame) -> list[ArrowSeries]:
try:
return [
ArrowSeries(
df._native_frame[column_name],
df.native[column_name],
name=column_name,
backend_version=df._backend_version,
version=df._version,
Expand Down Expand Up @@ -101,8 +101,8 @@ def from_column_indices(
def func(df: ArrowDataFrame) -> list[ArrowSeries]:
return [
ArrowSeries(
df._native_frame[column_index],
name=df._native_frame.column_names[column_index],
df.native[column_index],
name=df.native.column_names[column_index],
backend_version=df._backend_version,
version=df._version,
)
Expand Down Expand Up @@ -163,9 +163,9 @@ def func(df: ArrowDataFrame) -> Sequence[ArrowSeries]:
# TODO(marco): is there a way to do this efficiently without
# doing 2 sorts? Here we're sorting the dataframe and then
# again calling `sort_indices`. `ArrowSeries.scatter` would also sort.
sorting_indices = pc.sort_indices(df[token]._native_series) # type: ignore[call-overload]
sorting_indices = pc.sort_indices(df[token].native) # type: ignore[call-overload]
return [
ser._from_native_series(pc.take(ser._native_series, sorting_indices))
ser._from_native_series(pc.take(ser.native, sorting_indices))
for ser in result
]
else:
Expand Down
1 change: 0 additions & 1 deletion narwhals/_arrow/group_by.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,6 @@ def __iter__(self: Self) -> Iterator[tuple[Any, ArrowDataFrame]]:
null_token: str = "__null_token_value__" # noqa: S105

table = self.compliant.native
# NOTE: stubs fail in multiple places for `ChunkedArray`
it, separator_scalar = cast_to_comparable_string_types(
*(table[key] for key in self._keys), separator=""
)
Expand Down
19 changes: 4 additions & 15 deletions narwhals/_arrow/namespace.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,7 @@ def len(self: Self) -> ArrowExpr:
# coverage bug? this is definitely hit
return self._expr( # pragma: no cover
lambda df: [
ArrowSeries.from_iterable(
[len(df._native_frame)], name="len", context=self
)
ArrowSeries.from_iterable([len(df.native)], name="len", context=self)
],
depth=0,
function_name="len",
Expand Down Expand Up @@ -158,12 +156,8 @@ def min_horizontal(self: Self, *exprs: ArrowExpr) -> ArrowExpr:
def func(df: ArrowDataFrame) -> list[ArrowSeries]:
init_series, *series = list(chain.from_iterable(expr(df) for expr in exprs))
init_series, *series = align_series_full_broadcast(init_series, *series)
# NOTE: Stubs copy the wrong signature https://github.com/zen-xu/pyarrow-stubs/blob/d97063876720e6a5edda7eb15f4efe07c31b8296/pyarrow-stubs/compute.pyi#L963
min_element_wise: Incomplete = pc.min_element_wise
native_series = reduce(
min_element_wise,
[s._native_series for s in series],
init_series._native_series,
pc.min_element_wise, [s.native for s in series], init_series.native
)
return [
ArrowSeries(
Expand All @@ -187,13 +181,8 @@ def max_horizontal(self: Self, *exprs: ArrowExpr) -> ArrowExpr:
def func(df: ArrowDataFrame) -> list[ArrowSeries]:
init_series, *series = list(chain.from_iterable(expr(df) for expr in exprs))
init_series, *series = align_series_full_broadcast(init_series, *series)
# NOTE: stubs are missing `ChunkedArray` support
# https://github.com/zen-xu/pyarrow-stubs/blob/d97063876720e6a5edda7eb15f4efe07c31b8296/pyarrow-stubs/compute.pyi#L948-L954
max_element_wise: Incomplete = pc.max_element_wise
native_series = reduce(
max_element_wise,
[s._native_series for s in series],
init_series._native_series,
pc.max_element_wise, [s.native for s in series], init_series.native
)
return [
ArrowSeries(
Expand All @@ -219,7 +208,7 @@ def concat(
*,
how: Literal["horizontal", "vertical", "diagonal"],
) -> ArrowDataFrame:
dfs = [item._native_frame for item in items]
dfs = [item.native for item in items]

if not dfs:
msg = "No dataframes to concatenate" # pragma: no cover
Expand Down
Loading
Loading