Skip to content

Commit

Permalink
fixup for cudf?
Browse files Browse the repository at this point in the history
  • Loading branch information
MarcoGorelli committed Mar 19, 2024
1 parent e0f26d6 commit 185e889
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
2 changes: 1 addition & 1 deletion narwhals/pandas_like/group_by.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ def agg_generic( # noqa: PLR0913
to_remove: list[int] = []
for i, expr in enumerate(exprs):
if is_simple_aggregation(expr):
dfs.append(evaluate_simple_aggregation(expr, grouped))
dfs.append(evaluate_simple_aggregation(expr, grouped, group_by_keys))
to_remove.append(i)
exprs = [expr for i, expr in enumerate(exprs) if i not in to_remove]

Expand Down
10 changes: 8 additions & 2 deletions narwhals/pandas_like/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ def is_simple_aggregation(expr: PandasExpr) -> bool:
)


def evaluate_simple_aggregation(expr: PandasExpr, grouped: Any) -> Any:
def evaluate_simple_aggregation(expr: PandasExpr, grouped: Any, keys: list[str]) -> Any:
"""
Use fastpath for simple aggregations if possible.
Expand All @@ -232,7 +232,13 @@ def evaluate_simple_aggregation(expr: PandasExpr, grouped: Any) -> Any:
Returns naive DataFrame.
"""
if expr._depth == 0:
return grouped.size()["size"].rename(expr._output_names[0]) # type: ignore[index]
ser = grouped.size()
if len(ser.shape) > 1:
# dataframe
ser = ser.drop(columns=keys)
ser = ser[ser.columns[0]]
ser.name = expr._output_names[0] # type: ignore[index]
return ser
if expr._root_names is None or expr._output_names is None:
msg = "Expected expr to have root_names and output_names set, but they are None. Please report a bug."
raise AssertionError(msg)
Expand Down

0 comments on commit 185e889

Please sign in to comment.