首先查看數據形態:
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,眾數,中位數。還可用:算法、多重差補等。但是如用隨機森林進行填補,解釋性比較差。