缺失数据简介
- 数据库中,缺失数据表示为NULL,缺失值也可能是空字符串(‘ ’)或数值在Pandas中使用NaN表示缺失值
-
Pandas中的NaN值来自NumPy库,NumPy中缺失值有几种表示形式:NaN,NAN,nan,他们都一样
-
缺失值和其它类型的数据不同,它毫无意义,不等于0,也不等于空串,从下面的输出结果可以得知
from numpy import NaN,NAN,nan print(NaN==True) print(NaN==False) print(NaN==0) print(NaN=='')
显示结果
False False False False
- 从下面的结果得知两个NaN也不相等
print(NaN==NaN) print(NaN==nan) print(NaN==NAN) print(nan==NAN)
显示结果
False False False False
-
Pandas提供了isnull/isna的判断方法,用于测试某个值是否为缺失值
print(pandas.isnull(NaN)) print(pandas.isnull(nan)) print(pandas.isnull(NAN))
显示结果
True True True
-
Pandas的notnull/notna方法也可以用于判断某个值是否为缺失值
print(pd.notnull(NaN)) print(pd.notnull(42))
显示结果
False True
缺失值可以直接使用dropna()的方法来进行清除,该方法会把所有包含缺失值的行删掉
df.dropna()
默认axis=0,是按照列是否有缺失值删行
设置axis=1,是按照行是否有缺失值删列
df.dropna(axis=1)
使用fillna(n)方法可以用常量来进行填充,下面就表示用0来填充缺失值
df.fillna(0)
在fillna()方法中,将参数method设置为ffill可以用序列中空值的上一个非空值来进行填充
df.fillna(method='ffill')
若将参数method设置为bfill则用序列中空值的下一个非空值来进行填充
df.fillna(method='bfill')