如何处理数据集中的缺失数据

 先观察各项特征分布情况

import pandas as pd
features = [ "Sex","Age","SibSp", "Parch","Fare"]
X = pd.get_dummies(train_data[features])
X.info()

 

1、缺失值较多的特征处理

一般抛弃该特征,否则会带来噪声,对预测数据结果造成影响。

2、缺失值较少的特征处理

其余的特征缺失值都在10%以内,我们可以采取很多的方式来处理,如下:

方法1:把NaN直接作为一个特征,假设用0表示,实现如下:

#fillna(0)要赋值才能生效
data_train = data_train.fillna(0) 

方式2:用均值填充:

# 将所有行用各自的均值填充 
data_train =data_train.fillna(data_train.mean())
# 指定某些行进行均值填充
data_train =data_train.fillna(data_train.mean()[[1,4]]) 

训练集train有缺省值,测试集test无缺省值,可对缺省值去条件均值或者条件中值      

 

方式3:用上下数据进行填充

#用前一个数据代替NaN: method='pad'
data_train = data_train.fillna(method='pad')
#用后一个数据代替NaN: method='bfill'
data_train = data_train.fillna(method='bfill')

方式4:用插值法填充;

# 插值法就是通过两点(x0,y0),(x1,y1)估计中间点的值
data_train = data_train.interpolate()

方式5:用算法拟合进行填充;

如用随机森林,使用已知的特征预测含有缺省值的特征。

将填补后的数据表保存在new_train.csv中

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值