缺失值处理 API: sklearn.preprocessing.Imputer
缺失值的处理一般使用pandas处理,这里scikit-learn也有方法,就介绍一下scikit-learn的方法。
缺失值处理方法:
删除 | 插补 |
---|---|
如果每列或者行数据缺失值达到一定的比例,建议放弃整行或者整列 | 可以通过缺失值每行或者每列的平均值、中位数来填充 |
建议按每一列的特征进行填补
Imputer语法:
-Imputer(missing_values=‘NaN’, strategy=‘mean’, axis=0)
完成缺失值插补
-Imputer.fit_transform(X,y)
X:numpy array格式的数据[n_samples,n_features]
返回值:转换后的形状相同的array
pandas处理:dropna,fillna
pandas处理和Imputer处理都需要把缺失值处理为np.nan格式
这里可以去采用replace函数进行替换。
from sklearn.preprocessing import Imputer
import numpy as np
def im():
"""缺失值处理"""
#missing_value 缺失值标记
#strategy 填补策略 mean平均值
#axis 1行 0列
im=Imputer(missing_values='NaN',strategy='mean',axis=0)
data=im.fit_transform([[1, 2],
[np.nan, 3],
[7, 6]]
)
print(data)
return None
if __name__ == '__main__':
im()
关于np.nan(np.NaN):
- numpy的数组中可以使用np.nan/np.NaN来代替缺失值,属于float类型
- 如果是文件中的一些缺失值,可以替换成nan,通过np.array转化成float
型的数组即可