2.处理缺失值
下载 UCI 数据集中的“匹兹堡的桥”
(https://archive.ics.uci.edu/ml/datasets/Pittsburgh+Bridges, 选择其中的
bridges.data.version1 部分)。对该数据集中出现的缺失值(用?表示),选择一个数值列,
用平均值填充;选择一个离散列(离散型取值),用众数填充。
说明:
(1)建议放入数据集的特征名。
(2)建议将缺失值用 np.nan 代替。
(3)建议使用 sklearn.impute.SimpleImputer 来实现。
首先是用nan填充了’?‘等缺失值,然后用pandas的describe方法对其中的数据进行分析,根据describe中的unique(种类)、freq(众数)大小分析出了数值列[2,5]和离散列[6,7,8,9,10,11,12],然后使用SimpleImputer模块对缺失值进行填充
imp = SimpleImputer(missing_values=’?’, strategy=‘constant’,fill_value=np.nan),其中显而易见的,missing_values是缺失值,strategy是填充类型,fill_value是当strategy为constant时的自定义的填充值,接着是使用其内置函数进行填充和转换imp.fit(data_imp)、data2 = imp.transform(data_imp)
还需注意填充后是对某一列进行填充,所以要定位到其中的列(数值列和离散列)
仅附上一个数值列的填充和离散列的填充,希望以后还记得举一反三咯(ctl+c,ctl+v):
from sklearn.impute import SimpleImputer
import pandas as pd
import numpy as np
data = pd.read_csv(r'bridges.data.version1',