18
18
Union ,
19
19
)
20
20
21
- from pandas ._typing import AggFuncType , Axis , FrameOrSeries , Label
21
+ from pandas ._typing import AggFuncType , Axis , FrameOrSeries , FrameOrSeriesUnion , Label
22
22
23
23
from pandas .core .dtypes .common import is_dict_like , is_list_like
24
24
from pandas .core .dtypes .generic import ABCDataFrame , ABCSeries
@@ -387,8 +387,8 @@ def validate_func_kwargs(
387
387
388
388
389
389
def transform (
390
- obj : FrameOrSeries , func : AggFuncType , axis : Axis , * args , ** kwargs ,
391
- ) -> FrameOrSeries :
390
+ obj : FrameOrSeriesUnion , func : AggFuncType , axis : Axis , * args , ** kwargs ,
391
+ ) -> FrameOrSeriesUnion :
392
392
"""
393
393
Transform a DataFrame or Series
394
394
@@ -423,13 +423,13 @@ def transform(
423
423
assert not is_series
424
424
return transform (obj .T , func , 0 , * args , ** kwargs ).T
425
425
426
- if isinstance (func , list ):
426
+ if is_list_like (func ) and not is_dict_like ( func ):
427
427
if is_series :
428
428
func = {com .get_callable_name (v ) or v : v for v in func }
429
429
else :
430
430
func = {col : func for col in obj }
431
431
432
- if isinstance (func , dict ):
432
+ if is_dict_like (func ):
433
433
if not is_series :
434
434
cols = sorted (set (func .keys ()) - set (obj .columns ))
435
435
if len (cols ) > 0 :
@@ -439,7 +439,7 @@ def transform(
439
439
# GH 15931 - deprecation of renaming keys
440
440
raise SpecificationError ("nested renamer is not supported" )
441
441
442
- results = {}
442
+ results : Dict [ Label , FrameOrSeriesUnion ] = {}
443
443
for name , how in func .items ():
444
444
colg = obj ._gotitem (name , ndim = 1 )
445
445
try :
0 commit comments