From 1e289f0436e51ec049421d580e60876d6cf73f98 Mon Sep 17 00:00:00 2001 From: MomIsBestFriend <> Date: Wed, 25 Dec 2019 21:50:17 +0200 Subject: [PATCH 1/2] Orderdict -> defaultdict(list) --- pandas/core/groupby/generic.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pandas/core/groupby/generic.py b/pandas/core/groupby/generic.py index dc343f670b725..502a978f95bbe 100644 --- a/pandas/core/groupby/generic.py +++ b/pandas/core/groupby/generic.py @@ -5,7 +5,7 @@ These are user facing as the result of the ``df.groupby(...)`` operations, which here returns a DataFrameGroupBy object. """ -from collections import OrderedDict, abc, namedtuple +from collections import OrderedDict, abc, defaultdict, namedtuple import copy from functools import partial from textwrap import dedent @@ -1894,12 +1894,10 @@ def _normalize_keyword_aggregation(kwargs): """ # Normalize the aggregation functions as Mapping[column, List[func]], # process normally, then fixup the names. - # TODO(Py35): When we drop python 3.5, change this to - # defaultdict(list) # TODO: aggspec type: typing.OrderedDict[str, List[AggScalar]] # May be hitting https://github.com/python/mypy/issues/5958 # saying it doesn't have an attribute __name__ - aggspec = OrderedDict() + aggspec = defaultdict(list) order = [] columns, pairs = list(zip(*kwargs.items())) From f9d173c022727db588867e6cb75b03d070f41ab9 Mon Sep 17 00:00:00 2001 From: MomIsBestFriend <> Date: Wed, 25 Dec 2019 23:38:07 +0200 Subject: [PATCH 2/2] CLN: Simplified code --- pandas/core/groupby/generic.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pandas/core/groupby/generic.py b/pandas/core/groupby/generic.py index 502a978f95bbe..713e52ce1d28f 100644 --- a/pandas/core/groupby/generic.py +++ b/pandas/core/groupby/generic.py @@ -1902,10 +1902,7 @@ def _normalize_keyword_aggregation(kwargs): columns, pairs = list(zip(*kwargs.items())) for name, (column, aggfunc) in zip(columns, pairs): - if column in aggspec: - aggspec[column].append(aggfunc) - else: - aggspec[column] = [aggfunc] + aggspec[column].append(aggfunc) order.append((column, com.get_callable_name(aggfunc) or aggfunc)) # uniquify aggfunc name if duplicated in order list