sklearn 缺失值填补(总结)
首先查看数据形态:
data.shape
再查看数据类型和非空值的个数与比例
data.info()
使用SimpleImputer进行填补
from sklearn.impute import SimpleImputer as si
imp_mean=si()
默认是用均值进行填补,参数如下:
- missing_values: 空值的类型。默认np.nan
注意,numpy自带的fillna只能填补np.nan,而此处则可以指定空值的类型。比如
?
或N/A
- strategy: 可选:mean, median, most_frequent, constant
- fill_value: 以什么值进行填补,当constant时可用。
- copy:是否创建副本
当数据是连续型,一般用均值填补。数据是分类型,用众数填补。
比如当空值是?时,使用0填充:
imp_0=si(missing_values="?",strategy='constant', fill_value=0)
imp_0=imp_0.fit_transform(data_)
注意此处,data是如果是0维,则要先变为一维:
data_=data.列名.values.reshape(-1.1)
除了用均值,0,众数,中位数。还可用:算法、多重差补等。但是如用随机森林进行填补,解释性比较差。