housing数据集中的total_bedrooms有部分缺失,对于缺失值,通常我们有以下几种方式处理:

  • 放弃有缺失值的样本
  • 放弃整个特征
  • 将缺失值设置为某个默认值:0、平均值、中位数等。

pandas方式

通过DataFrame的dropna(), drop()和fillna()函数,可以方便的实现以上3个功能:

housing.dropna(subset=['total_bedrooms'])
housing.info()housing.drop('total_bedrooms', axis = 1)
housing.info()median = housing['total_bedrooms'].median()
housing['total_bedrooms'].fillna(median,inplace=True)
housing.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 20640 entries, 0 to 20639
Data columns (total 10 columns):#   Column              Non-Null Count  Dtype
---  ------              --------------  -----  0   longitude           20640 non-null  float641   latitude            20640 non-null  float642   housing_median_age  20640 non-null  float643   total_rooms         20640 non-null  float644   total_bedrooms      20640 non-null  float645   population          20640 non-null  float646   households          20640 non-null  float647   median_income       20640 non-null  float648   median_house_value  20640 non-null  float649   ocean_proximity     20640 non-null  object
dtypes: float64(9), object(1)
memory usage: 1.6+ MB

sklearn方式

使用pandas方式需要对每个属性进行处理,我们使用sklearn来批量处理整个数据集的所有属性。

sklearn提供了一个非常容易上手的类来处理缺失值:Simpleimputer。同时,由于中位数只能在数值类属性上计算,所以我们需要创建一个没有文本属性ocean_proximity的数据副本:

from sklearn.impute import SimpleImputer
imputer = SimpleImputer(strategy = 'median')
housing_num = housing.drop('ocean_proximity', axis=1)# fit、transform,然后转换回DataFrame
imputer.fit(housing_num)
X = imputer.transform(housing_num)
housing_num_pd = pd.DataFrame(X, columns=housing_num.columns, index=housing_num.index)

我们可以看一下各个属性的中位数:

print(imputer.statistics_)
print(housing_num.median().values)
[-1.1849e+02  3.4260e+01  2.9000e+01  2.1270e+03  4.3500e+02  1.1660e+034.0900e+02  3.5348e+00  1.7970e+05]
[-1.1849e+02  3.4260e+01  2.9000e+01  2.1270e+03  4.3500e+02  1.1660e+034.0900e+02  3.5348e+00  1.7970e+05]

sklearn与pandas的缺失值处理相关推荐

  1. Sklearn Impute SimpleImputer 处理缺失值

    Sklearn 有专门处理缺失值的模块 sklearn.impute.SimpleImputer,本文将探究如何用 Sklearn 中的预处理模块中的 Impute.SimpleImputer 处理缺 ...

  2. pandas对缺失值NaN处理

    看下面这张图片,其中有缺失值NaN,处理数据时需要先对缺失值进行处理 1 .如何处理缺失值nan 获取缺失值的标记方式(NaN或者其他标记方式) 如果缺失值的标记方式是NaN 判断数据中是否包含NaN ...

  3. pandas dataframe缺失值(np.nan)处理:识别缺失情况、删除、0值填补、均值填补、中位数填补、加缺失标签、插值填充详解及实例

    pandas dataframe缺失值(np.nan)处理:识别缺失情况.删除.0值填补.均值填补.中位数填补.加缺失标签.插值填充详解及实例 isnull().natna().isna().fill ...

  4. pandas统计缺失值的个数

    pandas 统计缺失值个数,可以使用 df['whole_post_clean'].isnull().sum()

  5. Python之pandas:pandas中缺失值与空值处理的简介及常用函数(drop()、dropna()、isna()、isnull()、fillna())函数详解之详细攻略

    Python之pandas:pandas中缺失值与空值处理的简介及常用函数(drop().dropna().isna().isnull().fillna())函数详解之详细攻略 目录 pandas中缺 ...

  6. python替换缺失值_详解Pandas 处理缺失值指令大全

    前言 运用pandas 库对所得到的数据进行数据清洗,复习一下相关的知识. 1 数据清洗 1.1 处理缺失数据 对于数值型数据,分为缺失值(NAN)和非缺失值,对于缺失值的检测,可以通过Python中 ...

  7. python查询缺失值所在位置_Python Pandas找到缺失值的位置方法

    问题描述: python pandas判断缺失值一般采用 isnull(),然而生成的却是所有数据的true/false矩阵,对于庞大的数据dataframe,很难一眼看出来哪个数据缺失,一共有多少个 ...

  8. pandas 处理缺失值[dropna、drop、fillna]

    面对缺失值三种处理方法: option 1: 去掉含有缺失值的样本(行) option 2:将含有缺失值的列(特征向量)去掉 option 3:将缺失值用某些值填充(0,平均值,中值等) 对于drop ...

  9. 【机器学习技巧】之特征工程:数字编码以及One-hot独热编码的几种方式(sklearn与pandas处理方式)

    本文主要对OneHot独热编码进行了简单介绍,同时介绍了在sklearn与pandas中进行数字编码以及One-hot独热编码的几种方式. 目录 1. OneHot独热编码介绍 1.1 为什么要用On ...

最新文章

  1. Spring学习详解(1)——Spring入门详解
  2. 分享一下收到的微软CRM云分享计划 邮件
  3. 实际用户ID,有效用户ID与保存设置用户ID
  4. 虚拟服务器备案流程,国内虚拟主机备案流程
  5. java与flex通信_Flex与Java通信教程
  6. jinja Extends Blocks Include
  7. Canbus通信协议
  8. Function与function的区别
  9. timestamp类型增加天、月、年后的时间
  10. 学生学籍管理系统数据库
  11. 机械臂求运动学逆解的Pieper准则
  12. 蜂房问题-蜜蜂在蜂房中只能向下或者右上方爬,从a位置爬到b位置有多少种途径
  13. Flink SQL CDC 13 条生产实践经验
  14. UVa 12112 - Iceman
  15. ftp文件传输工具,5款你会喜欢的ftp文件传输工具
  16. Java学习day1--markdown使用、Dos命令、JAVA特性与安装
  17. 玉米社:网站seo站内优化技巧有哪些?
  18. Python 函数嵌套
  19. java断点续传_用Java实现断点续传(HTTP)
  20. 上下班通勤车辆实时定位查询小程序开发制作介绍

热门文章

  1. 【最简便解法】1086 就不告诉你 (15分)_13行代码AC
  2. 远程访问及控制(详解)——SSH远程管理及TCP Wrappers 访问控制
  3. python笔记之for循环
  4. Java Socket重要参数讲解
  5. 停止从域服务器同步文件,域控制器不同步处理办法
  6. dict去重python_python去重,一个由dict组成的list的去重示例
  7. activex for chrome扩展程序 下载”_chrome系列-扩展程序开发学习-从无到有
  8. python爬虫导入数据库_python爬虫爬下来的数据怎么导入到MySQL
  9. arg是什么函数_怎么实现边听歌边搜图?线程初体验:常用函数
  10. java中b的平方表示_第七届蓝桥杯Java B——四平方和