1.缺失值处理
- 查看缺失值
train_data.info()#可以查看特征的确实情况
import missingno as msno
msno.matrix(train_data,labels=True)#可以一目了然的看到每个变量的缺失情况
msno.bar(train_data)#条形图显示缺失值情况
- 删除:适用于数据量较大(记录较多)且缺失比较较小的情形,去掉后对总体影响不大。
- 缺失值较少,删除包含缺失值的行,
train_data.dropna()
- 删除缺失值大于80%的列,
train_data.dropna(thresh=len(data)*0.2, axis=1)
- 某一列缺失严重,删除某列,
train_data.drop(['V0','V1'],axis=1,inplace=True)
- 丢弃某几列有缺失的行,
train_data.dropna(axis=0, subset=['a','b'], inplace=True)
其中,axis=1表示行,inplace=True表示替换掉原始数据
- 填充:缺失值填充之前,先了解缺失的变量含义。
- 平均值适用于近似正态分布数据,观测值较为均匀散布均值周围;
- 中位数适用于偏态分布或者有离群点数据,中位数是更好地代表数据中心趋势;
- 众数一般用于类别变量,无大小、先后顺序之分。
from scipy import stats
# 均值填充
data['col'] = data['col'].fillna(data['col'].means())
# 中位数填充
data['c