Skip to content
1 change: 1 addition & 0 deletions doc/source/whatsnew/v1.1.0.rst
Original file line number Diff line number Diff line change
Expand Up @@ -332,6 +332,7 @@ Other enhancements
- :meth:`~Series.explode` now accepts ``ignore_index`` to reset the index, similarly to :meth:`pd.concat` or :meth:`DataFrame.sort_values` (:issue:`34932`).
- :meth:`read_csv` now accepts string values like "0", "0.0", "1", "1.0" as convertible to the nullable boolean dtype (:issue:`34859`)
- :class:`pandas.core.window.ExponentialMovingWindow` now supports a ``times`` argument that allows ``mean`` to be calculated with observations spaced by the timestamps in ``times`` (:issue:`34839`)
- :meth:`DataFrame.agg` and :meth:`Series.agg` now accept named aggregation for renaming the output columns/indexes. (:issue:`26513`)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apologize that somehow i didn't notice there wasn't a whatsnew note.

Added here!


.. ---------------------------------------------------------------------------

Expand Down
8 changes: 8 additions & 0 deletions pandas/_typing.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,3 +96,11 @@
# DataFrame::sort_index, among others
ValueKeyFunc = Optional[Callable[["Series"], Union["Series", AnyArrayLike]]]
IndexKeyFunc = Optional[Callable[["Index"], Union["Index", AnyArrayLike]]]

# types of `func` kwarg for DataFrame.aggregate and Series.aggregate
AggFuncTypeBase = Union[Callable, str]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If there is a more generic name you can think of than AggFuncTypeBase I think would be useful in other areas that aren't aggregations; i.e. in groupby a lot we accept a callable / str and resolve the latter to a builtin or NumPy func if we can, which could use this same type

AggFuncType = Union[
AggFuncTypeBase,
List[AggFuncTypeBase],
Dict[Label, Union[AggFuncTypeBase, List[AggFuncTypeBase]]],
]
10 changes: 1 addition & 9 deletions pandas/core/aggregation.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
Union,
)

from pandas._typing import Label
from pandas._typing import AggFuncType, Label

from pandas.core.dtypes.common import is_dict_like, is_list_like

Expand All @@ -26,14 +26,6 @@
from pandas.core.indexes.api import Index
from pandas.core.series import FrameOrSeriesUnion, Series

# types of `func` kwarg for DataFrame.aggregate and Series.aggregate
AggFuncTypeBase = Union[Callable, str]
AggFuncType = Union[
AggFuncTypeBase,
List[AggFuncTypeBase],
Dict[Label, Union[AggFuncTypeBase, List[AggFuncTypeBase]]],
]


def reconstruct_func(
func: Optional[AggFuncType], **kwargs,
Expand Down