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,众数,中位数。还可用:算法、多重差补等。但是如用随机森林进行填补,解释性比较差。

posted @ 2018-12-22 12:27  何大卫  阅读(4740)  评论(0编辑  收藏  举报