diff --git a/pandas/core/indexes/base.py b/pandas/core/indexes/base.py index fd1d3690e8a89..f387afde24117 100644 --- a/pandas/core/indexes/base.py +++ b/pandas/core/indexes/base.py @@ -2022,18 +2022,58 @@ def hasnans(self): def isna(self): """ - Detect missing values + Detect missing values. + + Return a boolean same-sized object indicating if the values are NA. + NA values, such as ``None``, :attr:`numpy.NaN` or :attr:`pd.NaT`, get + mapped to ``True`` values. + Everything else get mapped to ``False`` values. Characters such as + empty strings `''` or :attr:`numpy.inf` are not considered NA values + (unless you set :attr:`pandas.options.mode.use_inf_as_na` `= True`). .. versionadded:: 0.20.0 Returns ------- - a boolean array of whether my values are NA + numpy.ndarray + A boolean array of whether my values are NA - See also + See Also + -------- + pandas.Index.notna : boolean inverse of isna. + pandas.Index.dropna : omit entries with missing values. + pandas.isna : top-level isna. + Series.isna : detect missing values in Series object. + + Examples -------- - isnull : alias of isna - pandas.isna : top-level isna + Show which entries in a pandas.Index are 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.isna() + array([False, False, True], dtype=bool) + + Empty strings are not considered NA values. None is considered an NA + value. + + >>> idx = pd.Index(['black', '', 'red', None]) + >>> idx + Index(['black', '', 'red', None], dtype='object') + >>> idx.isna() + array([False, False, False, True], dtype=bool) + + For datetimes, `NaT` (Not a Time) is considered as an NA value. + + >>> idx = pd.DatetimeIndex([pd.Timestamp('1940-04-25'), + ... pd.Timestamp(''), None, pd.NaT]) + >>> idx + DatetimeIndex(['1940-04-25', 'NaT', 'NaT', 'NaT'], + dtype='datetime64[ns]', freq=None) + >>> idx.isna() + array([False, True, True, True], dtype=bool) """ return self._isnan isnull = isna