数据预处理--缺失值填补《菜菜学习笔记》
目录
引言
一、缺失值填补 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-同类均值插补 3-建模预测 4-高维映射 5-多重插补 6-手动插补 数据预处理完 ...
- 数据预处理+缺失值处理方案+Missing Value+pandas+缺失值填充方法、方案
数据预处理+缺失值处理方案+Missing Value+pandas+缺失值填充方法.方案 缺失值+sklearn from sklearn.preprocessing import Imputer ...
- 大数据第二阶段Python基础编程学习笔记(待完善)
大数据第二阶段Python基础编程学习笔记(待完善) 第一章 Python基础语法 3.8 1-1Python概述 python基础部分: ●Python基础语法: 标识符,关键字,变量,判断循环.. ...
- python数据预处理 重复行统计_Python数据分析之数据预处理(数据清洗、数据合并、数据重塑、数据转换)学习笔记...
1. 数据清洗 1.1 空值和缺失值的处理 空值一般表示数据未知.不适用或将在以后添加数据.缺失值是指数据集中某个或某些属性的值是不完整的. 一般空值使用None表示,缺失值使用NaN表示 1.1 ...
- Python数据分析之数据预处理(数据清洗、数据合并、数据重塑、数据转换)学习笔记
文章目录 1. 数据清洗 1.1 空值和缺失值的处理 1.1.1 使用isnull()和notnull()函数 1.1.1.1 isnull()语法格式: 1.1.1.2 notnull()语法格式: ...
- 有效值和峰峰值的关系_4.数据预处理—缺失值处理(二)
理想的状态下,数据都是直接可用.规律的,但现实中的数据总会有各种问题,比如:数据缺失.格式不一致.含噪声(数据中存在错误/异常值).数据不一致(不能相互验证)等--在数据分析的工作中,数据处理占了大部 ...
- [Python] 数据预处理(缺失值、异常值、重复值) [相关方法参数说明、代码示例、相关概念]
前言 系列文章目录 [Python]目录 视频及资料和课件 链接:https://pan.baidu.com/s/1LCv_qyWslwB-MYw56fjbDg?pwd=1234 提取码:1234 文 ...
- 数据治理专业认证CDMP学习笔记(思维导数据治理专业认证CDMP学习笔记(思维导图与知识点)- 第11章数据仓库和商务智能篇...
大家好,我是独孤风,一位曾经的港口煤炭工人,目前在某国企任大数据负责人,公众号大数据流动主理人.在最近的两年的时间里,因为公司的需求,还有大数据的发展趋势所在,我开始学习数据治理的相关知识. 数据治理 ...
最新文章
- 前后端分离的接口规范是什么?
- linux 脏牛提权 cve-2016-5159
- 湖南大学超级计算机中心 舒教授,湖南大学岳麓书院哲学系舒远招教授应邀来我院讲学...
- SD-WAN成本节省取决于基础WAN技术
- laravel php配置,PHP Laravel框架路由配置及设置技巧全解
- php数组合并 要保持两个数组的键名都不变
- Java中的简单REST客户端
- 微擎即用WIFI源码V2.1.7
- 问题 L: 一年中的第几天
- mysql获取当前时间,前一天,后一天
- php开发 文件下载,php 实现文件下载
- paip.提升用户检验--------取回密码-忘记密码提醒
- HDU 2674 N!Again
- SpringCloud之Ribbon源码分析(一)
- 批量图片压缩解决方案之Imagine
- IOS实现应用内打开第三方地图app进行导航
- X/Open和OSF
- 解决WiFi信号弱小妙招
- 【面试总结】面试前不得不刷一下的硬核总结。
- 九轴传感器MPU9250数据读取磁力计