一、缺失值的观察与处理
通常拿到的数据中含有很多缺失值,需要经过数据清洗达到可以分析的标准。
处理缺失值一般有三种思路:
-
将缺失值置为一个常数
-
使用函数DataFrame.fillna()
可以通过常数填充,还可以通过字典填充不同常数
参数:
method:填充方法,ffill——用前一个非空缺值填充,bfill——用下一个空缺值填充
limit:限制填充个数
axis:修改填充方向 -
将缺失值所在行删除
-
使用函数DataFrme.dropna()
参数:
axis: 默认axis=0。0为按行删除,1为按列删除
how: 默认 ‘any’。 ‘any’指带缺失值的所有行/列;'all’指清除一整行/列都是缺失值的行/列
thresh: int,保留含有thresh个非nan值的行
subset: 删除特定列中包含缺失值的行或列
inplace: 默认False,不改动原数据
#观察缺失值
df.info() #可以用于获取信息,得到数组非空值个数和数据类型的信息
df.isnull().sum() #获取每个索引下的空值数
df[np.isnan(df['Age'])]=0 #注意np.nan == np.nan时会返回False
#处理缺失值——删除缺失值所在行
df.dropna()
#处理缺失值——用常数0填充缺失值
df.fillna()
df[df['Age']==None]=0
df[df['Age'].isnull<