Skip to content

Commit

Permalink
Showing 3 changed files with 21 additions and 5 deletions.
2 changes: 1 addition & 1 deletion doc/source/whatsnew/v1.1.4.rst
Original file line number Diff line number Diff line change
@@ -27,7 +27,7 @@ Fixed regressions

Bug fixes
~~~~~~~~~
-
- Bug causing ``groupby(...).sum()`` and similar to not preserve metadata (:issue:`29442`)

.. ---------------------------------------------------------------------------
8 changes: 5 additions & 3 deletions pandas/core/groupby/groupby.py
Original file line number Diff line number Diff line change
@@ -1004,8 +1004,9 @@ def _agg_general(
):
with group_selection_context(self):
# try a cython aggregation if we can
result = None
try:
return self._cython_agg_general(
result = self._cython_agg_general(
how=alias,
alt=npfunc,
numeric_only=numeric_only,
@@ -1024,8 +1025,9 @@ def _agg_general(
raise

# apply a non-cython aggregation
result = self.aggregate(lambda x: npfunc(x, axis=self.axis))
return result
if result is None:
result = self.aggregate(lambda x: npfunc(x, axis=self.axis))
return result.__finalize__(self.obj, method="groupby")

def _cython_agg_general(
self, how: str, alt=None, numeric_only: bool = True, min_count: int = -1
16 changes: 15 additions & 1 deletion pandas/tests/generic/test_finalize.py
Original file line number Diff line number Diff line change
@@ -762,13 +762,27 @@ def test_categorical_accessor(method):
[
operator.methodcaller("sum"),
lambda x: x.agg("sum"),
],
)
def test_groupby_finalize(obj, method):
obj.attrs = {"a": 1}
result = method(obj.groupby([0, 0]))
assert result.attrs == {"a": 1}


@pytest.mark.parametrize(
"obj", [pd.Series([0, 0]), pd.DataFrame({"A": [0, 1], "B": [1, 2]})]
)
@pytest.mark.parametrize(
"method",
[
lambda x: x.agg(["sum", "count"]),
lambda x: x.transform(lambda y: y),
lambda x: x.apply(lambda y: y),
],
)
@not_implemented_mark
def test_groupby(obj, method):
def test_groupby_finalize_not_implemented(obj, method):
obj.attrs = {"a": 1}
result = method(obj.groupby([0, 0]))
assert result.attrs == {"a": 1}

0 comments on commit d7a5b83

Please sign in to comment.