diff --git a/pandas/core/groupby/generic.py b/pandas/core/groupby/generic.py index 9073a1e31dfb0..f6c4836632795 100644 --- a/pandas/core/groupby/generic.py +++ b/pandas/core/groupby/generic.py @@ -397,7 +397,7 @@ def _aggregate_named(self, func, *args, **kwargs): output = func(group, *args, **kwargs) if isinstance(output, (Series, Index, np.ndarray)): raise ValueError("Must produce aggregated value") - result[name] = self._try_cast(output, group) + result[name] = output return result diff --git a/pandas/core/groupby/groupby.py b/pandas/core/groupby/groupby.py index 280f1e88b0ea8..746fb21c5776e 100644 --- a/pandas/core/groupby/groupby.py +++ b/pandas/core/groupby/groupby.py @@ -1357,14 +1357,6 @@ def f(self, **kwargs): # apply a non-cython aggregation result = self.aggregate(lambda x: npfunc(x, axis=self.axis)) - - # coerce the resulting columns if we can - if isinstance(result, DataFrame): - for col in result.columns: - result[col] = self._try_cast(result[col], self.obj[col]) - else: - result = self._try_cast(result, self.obj) - return result set_function_name(f, name, cls)