检查缺失值

为了检查值是否为 NaN,可以使用 isnull()notnull() 函数。

In [1]: import numpy as np
In [2]: import pandas as pd
In [3]: ser = pd.Series([1, 2, np.nan, 4])
In [4]: pd.isnull(ser)
Out[4]: 
0    False
1    False
2     True
3    False
dtype: bool   

请注意,np.nan == np.nan 返回 False,因此你应该避免与 np.nan 进行比较:

In [5]: ser == np.nan
Out[5]: 
0    False
1    False
2    False
3    False
dtype: bool

这两个函数也被定义为 Series 和 DataFrames 上的方法。

In [6]: ser.isnull()
Out[6]: 
0    False
1    False
2     True
3    False
dtype: bool

在 DataFrames 上测试:

In [7]: df = pd.DataFrame({'A': [1, np.nan, 3], 'B': [np.nan, 5, 6]})
In [8]: print(df)
Out[8]: 
     A    B
0  1.0  NaN
1  NaN  5.0
2  3.0  6.0    

In [9]: df.isnull()  # If the value is NaN, returns True.
Out[9]: 
       A      B
0  False   True
1   True  False
2  False  False

In [10]: df.notnull()  # Opposite of .isnull(). If the value is not NaN, returns True.
Out[10]: 
       A      B
0   True  False
1  False   True
2   True   True