python数据预处理之缺失值简单处理,特征选择

书籍:《python machine learning》推荐kaggel 上大神的数据预处理文章:https://www.kaggle.com/pmarcelino/comprehensive-data-exploration-with-python自己之前也学习过这篇文章对一些代码进行了注释,博文如下:https://blog.csdn.net/Amy_mm/article...
摘要由CSDN通过智能技术生成

书籍:《python machine learning》

推荐kaggel 上大神的数据预处理文章:

https://www.kaggle.com/pmarcelino/comprehensive-data-exploration-with-python

 

自己之前也学习过这篇文章对一些代码进行了注释,博文如下:

https://blog.csdn.net/Amy_mm/article/details/79538083

 

本文是学习《python machine learning》第四章的学习记录~~~

 

本文数据预处理源码git 地址:https://github.com/xuman-Amy/preprocessing

本文数据预处理主要步骤:

(1)删除和估算缺失值 (removing and imputing missing values)

(2)获取分类数据 (Getting  categorical data into shape for machine learning)

(3)为模型构建选择相关特征 (Selecting relevant features for the module construction)

【创建CSV数据集】

#build a csv dataset 
import numpy as np
import pandas as pd
from io import StringIO
import sys
#数据不要打空格,IO流会读入空格
csv_data = \
'''A,B,C,D
1.0,2.0,3.0,4.0
5.0,6.0,,8.0
10.0,11.0,12.0,
'''
df = pd.read_csv(StringIO(csv_data))

如图,有两个空值~

【统计空值情况】

#using isnull() function to check NaN value 
df.isnull().sum()

【访问数组元素】

在放入sklearn的预估器之前,可以通过value属性访问numpy数组的底层数据

【消除缺失值 dropna() 函数】

一个最简单的处理缺失值的方法就是直接删掉相关的特征值(一列数据)或者相关的样本(一行数据)。

利用dropna()函数实现。

dropna( axis = 0 /1 )参数axis表示轴选择,axis=0 代表行,axis=1 代表列

df.dropna(axis = 1)

 

df.dropna(axis = 0)

dropna( how = all) how参数选择删除行列数据(any / all)

df.dropna(how = 'all')

dropna(thresh = int) 删除值少于int个数的值

df.dropna(thresh = 4)

dropna( subset = [' '])  删除指定列中有空值的一行数据(整个样本)

df.dropna(subset = ['C'])

删除C列中有空值的那一行数据

虽然直接删除很是简单啦~但是天下没有免费的午餐,直接删除会带来很多弊端。比如样本值删除太多导致不能进行可靠预测;或者特征值删除太多(列数据),可能失去很多有价值的信息。

所以下面介绍一个更为通用的缺失值处理技巧——插值技术。我们可以根据样本集中的其他数据,运用不同的插值技术,来估计 样本的缺失值。

【插值】interpolation techniques

【imputing missing values】

比较常用的一种估值是平均值估计(mean imputation)。可以直接使用sklearn库中的imputer类实现。

class sklearn.preprocessing .Imputer
(missing_values = 'NaN', strategy = 'mean', a
  • 7
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值