diff --git a/pandas/core/groupby/generic.py b/pandas/core/groupby/generic.py index fd07b472fc3da..d0fdb7d5cca0f 100644 --- a/pandas/core/groupby/generic.py +++ b/pandas/core/groupby/generic.py @@ -1558,9 +1558,8 @@ def _transform_general(self, func, *args, **kwargs): object.__setattr__(group, "name", name) try: path, res = self._choose_path(fast_path, slow_path, group) - except TypeError: - return self._transform_item_by_item(obj, fast_path) except ValueError as err: + # e.g. test_transform_with_non_scalar_group msg = "transform must return a scalar value for each group" raise ValueError(msg) from err if group.size > 0: @@ -1693,17 +1692,6 @@ def _choose_path(self, fast_path: Callable, slow_path: Callable, group: DataFram return path, res - def _transform_item_by_item(self, obj: DataFrame, wrapper) -> DataFrame: - # iterate through columns, see test_transform_exclude_nuisance - # gets here with non-unique columns - output = {} - for i, (colname, sgb) in enumerate(self._iterate_column_groupbys(obj)): - output[i] = sgb.transform(wrapper) - - result = self.obj._constructor(output, index=obj.index) - result.columns = obj.columns - return result - def filter(self, func, dropna: bool = True, *args, **kwargs): """ Filter elements from groups that don't satisfy a criterion.