缺失值处理

本文介绍了数据预处理中缺失值的检查、处理方法和可视化。通过`df.info()`和`df.isnull().sum()`查看缺失值;处理方式包括删除、不处理、插值和分箱;删除缺失值时,可以使用`dropna()`;插值方法如均值、中位数等;分箱时,将缺失值设为特定值。同时,使用`missingno`库进行缺失值可视化,如矩阵图、热度图和条形图,以便更好地理解数据缺失情况。
摘要由CSDN通过智能技术生成

一、查看缺失值

df.info()
df.isnull().sum()

注:有些缺失值会于隐藏类别型变量中

df.x1.value_counts()  # 发现缺失值被表示成-
df['x1'].replace('-', np.nan, inplace=True)     

二、处理缺失值

(一)删除

一般情况下一定不能随便删除异常值,因为对于分类型变量,删除很可能影响其分布。除非缺失值很少。

# dropna
df=df.dropna().reset_index(drop=True)
df.dropna(axis=0, how='any', subset=['x1'],inplace=True)  #在原数据上进行操作
# notnull
data2= data1[data1.x1.notnull()]

# default ‘any’指带缺失值的所有行;'all’指清除全是缺失值的行

(二)不处理

xgboost建模时会自动处理缺失值,但是前提是训练集和预测集的分布相同。

(三)插值补全

包括均值/中位数/众数/建模预测/多重插补/压缩感知补全/矩阵补全等

(四)分箱

缺失值一个箱

data.x1 = data.x1.fillna(-1)  # x1一般情况下只有正值
test.x1 = test.x1.fillna(-1)

三、缺失值可视化

# 白线越多,缺失越多
import missingno as msno
msno.matrix(data.sample(500))
# 热度值越大,两个特征同时缺失的比例越大
msno.heatmap(data,figsize=(16, 7))#figsize是指图的大小
# 查看缺失的数量和比例
msno.bar(Test_data.sample(1000))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值