From 52e7b0ebc32428953e41ee7a5b63841033d89389 Mon Sep 17 00:00:00 2001 From: jbrockmendel Date: Wed, 9 Oct 2019 15:39:19 -0700 Subject: [PATCH] CLN: dont catch Exception in groupby var --- pandas/core/groupby/groupby.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/pandas/core/groupby/groupby.py b/pandas/core/groupby/groupby.py index 4e0dd65042196..d477b173b95f0 100644 --- a/pandas/core/groupby/groupby.py +++ b/pandas/core/groupby/groupby.py @@ -41,6 +41,7 @@ class providing the base-class of operations. ) from pandas.core.dtypes.missing import isna, notna +from pandas.core import nanops import pandas.core.algorithms as algorithms from pandas.core.arrays import Categorical from pandas.core.base import ( @@ -721,6 +722,10 @@ def f(g): with np.errstate(all="ignore"): return func(g, *args, **kwargs) + elif hasattr(nanops, "nan" + func): + # TODO: should we wrap this in to e.g. _is_builtin_func? + f = getattr(nanops, "nan" + func) + else: raise ValueError( "func must be a callable if args or kwargs are supplied" @@ -1297,16 +1302,9 @@ def var(self, ddof=1, *args, **kwargs): """ nv.validate_groupby_func("var", args, kwargs) if ddof == 1: - try: - return self._cython_agg_general( - "var", - alt=lambda x, axis: Series(x).var(ddof=ddof, **kwargs), - **kwargs - ) - except Exception: - f = lambda x: x.var(ddof=ddof, **kwargs) - with _group_selection_context(self): - return self._python_agg_general(f) + return self._cython_agg_general( + "var", alt=lambda x, axis: Series(x).var(ddof=ddof, **kwargs), **kwargs + ) else: f = lambda x: x.var(ddof=ddof, **kwargs) with _group_selection_context(self):