pandas.notna#

pandas.notna(obj)[源代码]#

检测类数组对象的非缺失值。

此函数接受标量或类数组对象,并指示值是否有效(非缺失,在数值数组中为``NaN``,在对象数组中为``None``或``NaN``,在日期时间类中为``NaT``)。

Parameters:
obj类数组或对象值

要检查*非*空值或*非*缺失值的对象。

Returns:
布尔值或布尔值的类数组

对于标量输入,返回一个标量布尔值。对于数组输入,返回一个布尔数组,指示每个对应元素是否有效。

参见

isna

pandas.notna 的布尔逆运算。

Series.notna

检测 Series 中的有效值。

DataFrame.notna

检测 DataFrame 中的有效值。

Index.notna

检测 Index 中的有效值。

Examples

标量参数(包括字符串)会生成一个标量布尔值。

>>> pd.notna('dog')
True
>>> pd.notna(pd.NA)
False
>>> pd.notna(np.nan)
False

ndarray 会生成一个布尔 ndarray。

>>> array = np.array([[1, np.nan, 3], [4, 5, np.nan]])
>>> array
array([[ 1., nan,  3.],
       [ 4.,  5., nan]])
>>> pd.notna(array)
array([[ True, False,  True],
       [ True,  True, False]])

对于 Index,会返回一个布尔 ndarray。

>>> index = pd.DatetimeIndex(["2017-07-05", "2017-07-06", None,
...                          "2017-07-08"])
>>> index
DatetimeIndex(['2017-07-05', '2017-07-06', 'NaT', '2017-07-08'],
              dtype='datetime64[ns]', freq=None)
>>> pd.notna(index)
array([ True,  True, False,  True])

对于 Series 和 DataFrame,会返回相同类型的对象,其中包含布尔值。

>>> df = pd.DataFrame([['ant', 'bee', 'cat'], ['dog', None, 'fly']])
>>> df
     0     1    2
0  ant   bee  cat
1  dog  None  fly
>>> pd.notna(df)
      0      1     2
0  True   True  True
1  True  False  True
>>> pd.notna(df[1])
0     True
1    False
Name: 1, dtype: bool