目录

引言

一、缺失值填补 impute.SimpleImputer函数

1.1 Simplelmputer四个重要参数

1.2 用各个值填补演示

1.3 在这里我们使用中位数填补Age,用众数填补Embarked:

1.4 用Pandas和Numpy进行填补其实更加简单


引言

机器学习和数据挖掘中所使用的数据,永远不可能是完美的。很多特征,对于分析和建模来说意义非凡,但对于实际收集数据的人却不是如此,因此数据挖掘之中,常常会有重要的字段缺失值很多,但又不能舍弃字段的情况。因此,数据预处理中非常重要的一项就是处理缺失值

我们采用从泰坦尼克号提取出来的数据,这个数据有三个特征,如下:

  • Age 数值型
  • Sex 字符型
  • Embarked 字符型
import pandas as pd
#index_col=0是因为原数据中第1列本就是索引
data = pd.read_csv(r"..\datasets\Narrativedata.csv",index_col=0)
data.head()

 

一、缺失值填补 impute.SimpleImputer函数

class sklearn.impute.SimpleImputer(missing_values=nan,strategy="mean",fill_value=None,verbose=0,copy=True)

1.1 Simplelmputer四个重要参数

这个类是专门用来填充缺失值的。它包括四个重要参数:

>missing_values:告诉Simplelmputer,数据中的缺失值长什么样,默认空值np.nan

>strategy

我们填补缺失值的策略,默认均值

输入"mean"使用均值填补(仅对数值型特征可用)

输入"median"用中值填补(仅对数值型特征可用)

输入"most_frequent"用众数进行填补(对数值型和字符型特征都可用)

输入"constant"表示请参考参数"fill_value"中的值(对数值型和字符型特征都可用)

>fill_value

当参数startegy为"constant"的时候可用,可输入字符串或数字表示要填充的值,常用0

>copy

   默认为True,将创建特征矩阵的副本,反之则会将缺失值填补到原本的特征矩阵中去

import pandas as pd
#index_col=0是让计算机知道原数据中第一列样本是索引
data=pd.read_csv((r"..\datasets\Narrativedata.csv",index_col=0)
data.head()
data.info()#由运行结果可知Age和Embarked有缺失值
"""
<class 'pandas.core.frame.DataFrame'>
Int64Index: 891 entries, 0 to 890
Data columns (total 4 columns):#   Column    Non-Null Count  Dtype
---  ------    --------------  -----  0   Age       714 non-null    float641   Sex       891 non-null    object 2   Embarked  889 non-null    object 3   Survived  891 non-null    object
dtypes: float64(1), object(3)
memory usage: 34.8+ KB
"""

#查看数据

#查看数据
Age=data.loc[:,"Age"].values.reshape(-1,1) #sklearn当中的矩阵必须是二维的
Age[:20]
"""
array([[22.],[38.],[26.],[35.],[35.],[nan],[54.],[ 2.],[27.],[14.]])

1.2 用各个值填补演示


from sklearn.impute import SimpleImputer
import pandas as pddata=pd.read_csv((r"..\datasets\Narrativedata.csv",index_col=0)
Age=data.loc[:,"Age"].values.reshape(-1,1) imp_median=SimpleImputer(strategy="median")#用中位数填补
imp_median=imp_median.fit_transform(Age)#中值填补imp_0=SimpleImputer(strategy="constant",fill_value=0)#用零填补
imp_0=imp_0.fit_transform(Age) #使用0填补imp_median[:10] #查看用中值填补后的前20条数据
imp_0[:10]  #查看用0填补后的前20条数据

1.3 在这里我们使用中位数填补Age,用众数填补Embarked:


from sklearn.impute import SimpleImputer#在这里我们使用中位数填补Age
data.loc[:,"Age"]=imp_median#使用众数填补Embarked
Embarked=data.loc[:,"Embarked"].value.reshape(-1,1)
imp_mode=SimpleImputer(strategy="most_frequent")
data.loc[:,"Embarked"]=imp_mode.fit_transform(Embarked)data.info() #由结果可知填补已经完成了
"""
<class 'pandas.core.frame.DataFrame'>
Int64Index: 891 entries, 0 to 890
Data columns (total 4 columns):#   Column    Non-Null Count  Dtype
---  ------    --------------  -----  0   Age       891 non-null    float641   Sex       891 non-null    object 2   Embarked  891 non-null    object 3   Survived  891 non-null    object
dtypes: float64(1), object(3)
memory usage: 34.8+ KB
"""# data.head(20) #显示填补后的前20条数据

1.4 用Pandas和Numpy进行填补其实更加简单

import pandas as pd
data=pd.read_csv(r"数据地址")
data.head()data.loc[:,"Age"]=data.loc[:,"Age"].fillna(data.loc[:,"Age"].median())
#.fillna在DataFrame里面直接进行填补data.dropna(axis=0,inplace=True)
#.dropna(axis=0)删除所有缺失值的行, .dropna(axis=1)删除所有缺失值的列
#参数inplace,为True表示在原数据集上进行修改,为False表示生成一个复制对象,不修改原数据,默认为Flase

数据预处理--缺失值填补《菜菜学习笔记》相关推荐

  1. 二、数据预处理——缺失值处理

    二.数据预处理--缺失值处理 点击标题即可获取文章相关的源代码文件哟! 机器学习和数据挖掘中所使用的数据,永远不可能是完美的.很多特征,对于分析和建模来说意义非凡,但对于实际收集数据的人却不是如此,因 ...

  2. 数据预处理-缺失值处理

    数据预处理-缺失值处理 缺失值类型 不完全变量 完全随机缺失 随机缺失 完全非随机缺失 缺失值补全 1-均值查补 2-同类均值插补 3-建模预测 4-高维映射 5-多重插补 6-手动插补 数据预处理完 ...

  3. 数据预处理+缺失值处理方案+Missing Value+pandas+缺失值填充方法、方案

    数据预处理+缺失值处理方案+Missing Value+pandas+缺失值填充方法.方案 缺失值+sklearn from sklearn.preprocessing import Imputer ...

  4. 大数据第二阶段Python基础编程学习笔记(待完善)

    大数据第二阶段Python基础编程学习笔记(待完善) 第一章 Python基础语法 3.8 1-1Python概述 python基础部分: ●Python基础语法: 标识符,关键字,变量,判断循环.. ...

  5. python数据预处理 重复行统计_Python数据分析之数据预处理(数据清洗、数据合并、数据重塑、数据转换)学习笔记...

    1. 数据清洗 1.1 空值和缺失值的处理 ​空值一般表示数据未知.不适用或将在以后添加数据.缺失值是指数据集中某个或某些属性的值是不完整的. ​一般空值使用None表示,缺失值使用NaN表示 1.1 ...

  6. Python数据分析之数据预处理(数据清洗、数据合并、数据重塑、数据转换)学习笔记

    文章目录 1. 数据清洗 1.1 空值和缺失值的处理 1.1.1 使用isnull()和notnull()函数 1.1.1.1 isnull()语法格式: 1.1.1.2 notnull()语法格式: ...

  7. 有效值和峰峰值的关系_4.数据预处理—缺失值处理(二)

    理想的状态下,数据都是直接可用.规律的,但现实中的数据总会有各种问题,比如:数据缺失.格式不一致.含噪声(数据中存在错误/异常值).数据不一致(不能相互验证)等--在数据分析的工作中,数据处理占了大部 ...

  8. [Python] 数据预处理(缺失值、异常值、重复值) [相关方法参数说明、代码示例、相关概念]

    前言 系列文章目录 [Python]目录 视频及资料和课件 链接:https://pan.baidu.com/s/1LCv_qyWslwB-MYw56fjbDg?pwd=1234 提取码:1234 文 ...

  9. 数据治理专业认证CDMP学习笔记(思维导数据治理专业认证CDMP学习笔记(思维导图与知识点)- 第11章数据仓库和商务智能篇...

    大家好,我是独孤风,一位曾经的港口煤炭工人,目前在某国企任大数据负责人,公众号大数据流动主理人.在最近的两年的时间里,因为公司的需求,还有大数据的发展趋势所在,我开始学习数据治理的相关知识. 数据治理 ...

最新文章

  1. 前后端分离的接口规范是什么?
  2. linux 脏牛提权 cve-2016-5159
  3. 湖南大学超级计算机中心 舒教授,湖南大学岳麓书院哲学系舒远招教授应邀来我院讲学...
  4. SD-WAN成本节省取决于基础WAN技术
  5. laravel php配置,PHP Laravel框架路由配置及设置技巧全解
  6. php数组合并 要保持两个数组的键名都不变
  7. Java中的简单REST客户端
  8. 微擎即用WIFI源码V2.1.7
  9. 问题 L: 一年中的第几天
  10. mysql获取当前时间,前一天,后一天
  11. php开发 文件下载,php 实现文件下载
  12. paip.提升用户检验--------取回密码-忘记密码提醒
  13. HDU 2674 N!Again
  14. SpringCloud之Ribbon源码分析(一)
  15. 批量图片压缩解决方案之Imagine
  16. IOS实现应用内打开第三方地图app进行导航
  17. X/Open和OSF
  18. 解决WiFi信号弱小妙招
  19. 【面试总结】面试前不得不刷一下的硬核总结。
  20. 九轴传感器MPU9250数据读取磁力计

热门文章

  1. 企业如何构建内部开发者平台?
  2. ES6、ES7、ES8、ES9、ES10、ES11、ES12、ES13新特性大全
  3. 通过数组指针给二维数组赋值
  4. Cognitively-Inspired Model for Incremental Learning Using a Few Examples(附翻译)
  5. Java项目:JSP网上在线酒类商城系统网站
  6. WPF深入浅出话资源
  7. 图像恢复(加噪与去噪)
  8. Windows中查看8080端口的占用情况并关闭相关进程
  9. Oracle数据库-第三章:单值函数
  10. php pdo oracle操作类,一个基于PDO的数据库操作类