diff --git a/pandas/core/generic.py b/pandas/core/generic.py index c95d7cacf8c97..bfb251b0995ec 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -5591,7 +5591,7 @@ def asof(self, where, subset=None): NA values, such as None or :attr:`numpy.NaN`, gets mapped to True values. Everything else gets mapped to False values. Characters such as empty - strings `''` or :attr:`numpy.inf` are not considered NA values + strings ``''`` or :attr:`numpy.inf` are not considered NA values (unless you set ``pandas.options.mode.use_inf_as_na = True``). Returns @@ -5653,14 +5653,63 @@ def isnull(self): return isna(self).__finalize__(self) _shared_docs['notna'] = """ - Return a boolean same-sized object indicating if the values are - not NA. + 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. + + Returns + ------- + %(klass)s + Mask of bool values for each element in %(klass)s that + indicates whether an element is not an NA value. See Also -------- - %(klass)s.isna : boolean inverse of notna %(klass)s.notnull : alias of notna + %(klass)s.isna : boolean inverse of notna + %(klass)s.dropna : omit axes labels with missing values notna : top-level notna + + Examples + -------- + Show which entries in a DataFrame are not NA. + + >>> df = pd.DataFrame({'age': [5, 6, np.NaN], + ... 'born': [pd.NaT, pd.Timestamp('1939-05-27'), + ... pd.Timestamp('1940-04-25')], + ... 'name': ['Alfred', 'Batman', ''], + ... 'toy': [None, 'Batmobile', 'Joker']}) + >>> df + age born name toy + 0 5.0 NaT Alfred None + 1 6.0 1939-05-27 Batman Batmobile + 2 NaN 1940-04-25 Joker + + >>> df.notna() + age born name toy + 0 True False True False + 1 True True True True + 2 False True True True + + Show which entries in a Series are not NA. + + >>> ser = pd.Series([5, 6, np.NaN]) + >>> ser + 0 5.0 + 1 6.0 + 2 NaN + dtype: float64 + + >>> ser.notna() + 0 True + 1 True + 2 False + dtype: bool """ @Appender(_shared_docs['notna'] % _shared_doc_kwargs)