From 203364bd2b930102d9c2f80c998acd151e75d149 Mon Sep 17 00:00:00 2001 From: jbrockmendel Date: Tue, 22 Oct 2019 08:38:07 -0700 Subject: [PATCH] Stop catching TypeError in _aggregate_item_by_item --- pandas/core/dtypes/cast.py | 2 +- pandas/core/groupby/generic.py | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/pandas/core/dtypes/cast.py b/pandas/core/dtypes/cast.py index dd001e78c07de..7fcaf60088ad2 100644 --- a/pandas/core/dtypes/cast.py +++ b/pandas/core/dtypes/cast.py @@ -202,7 +202,7 @@ def trans(x): r = result.ravel() arr = np.array([r[0]]) - if isna(arr).any() or not np.allclose(arr, trans(arr).astype(dtype), rtol=0): + if isna(arr).any(): # if we have any nulls, then we are done return result diff --git a/pandas/core/groupby/generic.py b/pandas/core/groupby/generic.py index a78857423e7e0..08c84f284737c 100644 --- a/pandas/core/groupby/generic.py +++ b/pandas/core/groupby/generic.py @@ -1098,10 +1098,7 @@ def _aggregate_item_by_item(self, func, *args, **kwargs): cast = self._transform_should_cast(func) try: - result[item] = colg.aggregate(func, *args, **kwargs) - if cast: - result[item] = self._try_cast(result[item], data) except ValueError as err: if "Must produce aggregated value" in str(err): @@ -1110,10 +1107,10 @@ def _aggregate_item_by_item(self, func, *args, **kwargs): raise cannot_agg.append(item) continue - except TypeError as e: - cannot_agg.append(item) - errors = e - continue + + else: + if cast: + result[item] = self._try_cast(result[item], data) result_columns = obj.columns if cannot_agg: