diff --git a/pandas/core/aggregation.py b/pandas/core/aggregation.py index 541c617f7f618..c813b65d3cbb7 100644 --- a/pandas/core/aggregation.py +++ b/pandas/core/aggregation.py @@ -6,6 +6,7 @@ from collections import defaultdict from functools import partial from typing import ( + TYPE_CHECKING, Any, Callable, DefaultDict, @@ -26,7 +27,9 @@ from pandas.core.base import SpecificationError import pandas.core.common as com from pandas.core.indexes.api import Index -from pandas.core.series import Series + +if TYPE_CHECKING: + from pandas.core.series import Series def reconstruct_func( @@ -281,7 +284,7 @@ def relabel_result( func: Dict[str, List[Union[Callable, str]]], columns: Iterable[Label], order: Iterable[int], -) -> Dict[Label, Series]: +) -> Dict[Label, "Series"]: """ Internal function to reorder result if relabelling is True for dataframe.agg, and return the reordered result in dict. @@ -308,10 +311,10 @@ def relabel_result( reordered_indexes = [ pair[0] for pair in sorted(zip(columns, order), key=lambda t: t[1]) ] - reordered_result_in_dict: Dict[Label, Series] = {} + reordered_result_in_dict: Dict[Label, "Series"] = {} idx = 0 - reorder_mask = not isinstance(result, Series) and len(result.columns) > 1 + reorder_mask = not isinstance(result, ABCSeries) and len(result.columns) > 1 for col, fun in func.items(): s = result[col].dropna() diff --git a/pandas/core/series.py b/pandas/core/series.py index 0984e86a23592..41c3e8fa9d246 100644 --- a/pandas/core/series.py +++ b/pandas/core/series.py @@ -70,6 +70,7 @@ import pandas as pd from pandas.core import algorithms, base, generic, nanops, ops from pandas.core.accessor import CachedAccessor +from pandas.core.aggregation import transform from pandas.core.arrays import ExtensionArray from pandas.core.arrays.categorical import CategoricalAccessor from pandas.core.arrays.sparse import SparseAccessor @@ -4042,8 +4043,6 @@ def aggregate(self, func=None, axis=0, *args, **kwargs): def transform( self, func: AggFuncType, axis: Axis = 0, *args, **kwargs ) -> FrameOrSeriesUnion: - from pandas.core.aggregation import transform - return transform(self, func, axis, *args, **kwargs) def apply(self, func, convert_dtype=True, args=(), **kwds):