From a6ec07d2e80ed657e108f5c007f7c5ab7c1c7521 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Tue, 3 Mar 2020 20:15:26 +0100 Subject: [PATCH] Handle pandas 1.0 NA type --- holoviews/core/util.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/holoviews/core/util.py b/holoviews/core/util.py index 07302ca316..854a2733b6 100644 --- a/holoviews/core/util.py +++ b/holoviews/core/util.py @@ -78,8 +78,8 @@ def __cmp__(self, other): pd = None if pd: + pandas_version = LooseVersion(pd.__version__) try: - pandas_version = LooseVersion(pd.__version__) if pandas_version >= '0.24.0': from pandas.core.dtypes.dtypes import DatetimeTZDtype as DatetimeTZDtypeType from pandas.core.dtypes.generic import ABCSeries, ABCIndexClass @@ -862,13 +862,21 @@ def isfinite(val): elif val.dtype.kind == 'O': return np.array([isfinite(v) for v in val], dtype=bool) elif val.dtype.kind in 'US': - return np.ones_like(val, dtype=bool) - return np.isfinite(val) + return ~pd.isna(val) if pd else np.ones_like(val, dtype=bool) + finite = np.isfinite(val) + if pd and pandas_version >= '1.0.0': + finite &= ~pd.isna(val) + return finite elif isinstance(val, datetime_types+timedelta_types): return not isnat(val) elif isinstance(val, basestring): return True - return np.isfinite(val) + finite = np.isfinite(val) + if pd and pandas_version >= '1.0.0': + if finite is pd.NA: + return False + return finite & (~pd.isna(val)) + return finite def isdatetime(value):