diff --git a/pandas/core/indexes/base.py b/pandas/core/indexes/base.py index 52283e4e223b4..cbf0f7a70ff2f 100644 --- a/pandas/core/indexes/base.py +++ b/pandas/core/indexes/base.py @@ -2040,18 +2040,47 @@ def isna(self): def notna(self): """ - Inverse of isna + Detect existing (non-missing) values. + + Return a boolean same-sized object indicating if the values are not NA. + Non-missing values get mapped to ``True``. Characters such as empty + strings ``''`` or :attr:`numpy.inf` are not considered NA values + (unless you set ``pandas.options.mode.use_inf_as_na = True``). + NA values, such as None or :attr:`numpy.NaN`, get mapped to ``False`` + values. .. versionadded:: 0.20.0 Returns ------- - a boolean array of whether my values are not NA + numpy.ndarray + Boolean array to indicate which entries are not NA. See also -------- - notnull : alias of notna + Index.notnull : alias of notna + Index.isna: inverse of notna pandas.notna : top-level notna + + Examples + -------- + Show which entries in an Index are not NA. The result is an + array. + + >>> idx = pd.Index([5.2, 6.0, np.NaN]) + >>> idx + Float64Index([5.2, 6.0, nan], dtype='float64') + >>> idx.notna() + array([ True, True, False]) + + Empty strings are not considered NA values. None is considered a NA + value. + + >>> idx = pd.Index(['black', '', 'red', None]) + >>> idx + Index(['black', '', 'red', None], dtype='object') + >>> idx.notna() + array([ True, True, True, False]) """ return ~self.isna() notnull = notna