@@ -1542,9 +1542,8 @@ def _transform_general(self, func, *args, **kwargs):
1542
1542
object .__setattr__ (group , "name" , name )
1543
1543
try :
1544
1544
path , res = self ._choose_path (fast_path , slow_path , group )
1545
- except TypeError :
1546
- return self ._transform_item_by_item (obj , fast_path )
1547
1545
except ValueError as err :
1546
+ # e.g. test_transform_with_non_scalar_group
1548
1547
msg = "transform must return a scalar value for each group"
1549
1548
raise ValueError (msg ) from err
1550
1549
if group .size > 0 :
@@ -1677,17 +1676,6 @@ def _choose_path(self, fast_path: Callable, slow_path: Callable, group: DataFram
1677
1676
1678
1677
return path , res
1679
1678
1680
- def _transform_item_by_item (self , obj : DataFrame , wrapper ) -> DataFrame :
1681
- # iterate through columns, see test_transform_exclude_nuisance
1682
- # gets here with non-unique columns
1683
- output = {}
1684
- for i , (colname , sgb ) in enumerate (self ._iterate_column_groupbys (obj )):
1685
- output [i ] = sgb .transform (wrapper )
1686
-
1687
- result = self .obj ._constructor (output , index = obj .index )
1688
- result .columns = obj .columns
1689
- return result
1690
-
1691
1679
def filter (self , func , dropna : bool = True , * args , ** kwargs ):
1692
1680
"""
1693
1681
Filter elements from groups that don't satisfy a criterion.
0 commit comments