当前位置: 首页 > article >正文

「数据科学」清洗数据,真实数据集中缺失值的查看与处理

在数据科学的工作过程中,我们通过查看数据的基本要素和元数据之后,需要根据查看的结果,考虑是否需要清洗数据。缺失值的查看与处理,就是清洗数据的一部分。如果我们的数据集中,存在缺失值的话,就需要考虑如何处理缺失值。

缺失数据的产生

那么,缺失值是怎么产生的呢?

在我们收集数据的过程中,不管是通过手工收集,还是通过信息系统,录入数据的方式收集。可能会存在两种产生缺失值的情况,一种就是人为原因,导致数据没有录入,或者是没有收集到,形成缺失值。另外一种,可能是汇总组合数据的时候,由于算法设计的问题,或者是系统处理数据环节存在问题,也可能导致产生缺失值。

查看缺失数据

我们先来看,在我们的原始数据集中,如何来查看是否存在缺失值。

先导入必要的包,设置数据集,行和列显示的数目。

这里,我们通过ucimlrepo库的fetch_ucirepo函数,获取bank_marketing的真实数据集。

bank_marketing数据集,是葡萄牙一家银行机构的直接营销活动数据,营销活动是基于电话实现的。用来预测银行客户,是否会订阅银行产品(定期存款)。

从上图可以大致看出,有NaN的列,就是存在缺失值的变量。

我们还可以通过isnull函数,查看数据集的所有变量的缺失值情况,通过sum聚合函数,汇总存在缺失值变量的数据总数。

为0的变量,是不存在缺失值的变量。不为0的变量,则是存在缺失值的变量,需要考虑处理缺失值。

处理缺失数据

处理缺失数据的方式,一种是直接丢弃存在缺失值的行,一种是填充缺失值所在的单元格数据。

我们先来看直接丢弃存在缺失值的行。为了不影响原始数据集,我们复制一个新数据集data1。

通过dropna函数,直接丢弃存在缺失值的行。可以看出,操作完成后,数据从45211行,减少到了7842行。

这里,我还可以给dropna函数加上参数,来对整行都是缺失值的行,进行丢弃,语句如下所示。

df.dropna(how='all')

对整列都是缺失值的列,进行丢弃的话,语句如下所示。

df.dropna(how='all', axis=1)

我们再来看,如何填充缺失值数据。当具体的单元格中的缺失值数据,我们在现实中,找到合适的值的话,就可以直接填充缺失值数据。

我们可以对整个数据集,用0来填充缺失值。

这样,缺失值的地方,就用0进行了替代。

我们也可以考虑用缺失值前面或后面的值来填充。

如果是用后面的值进行填充的话,语句如下所示。

data1['job'].fillna(method='bfill')

如果要对某个单元格进行填充的话,只要查询到这个单元格,然后对这个单元格进行赋值操作,就可以填充新的数据值。

缺失值的填充,在现实的数据清洗过程中,用处非常大。我们收集到的数据,往往需要反复修改,不管是对缺失值的处理,还是对其他异常情况的处理,都需要用到缺失值填充的操作。

以上就是本篇文章的全部内容。


http://www.kler.cn/news/310217.html

相关文章:

  • 高效开发,从暗藏玄机的文件系统开始—合宙Air201资产定位模组LuatOS
  • 产品经理学习笔记
  • scanf()函数的介绍及基础用法
  • 孙怡带你深度学习(1)--神经网络
  • wordpress主题摘要调用显示错误解决办法
  • 计算机毕业设计 家电销售展示平台的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 无人机光电吊舱的技术!!
  • XML_Tomcat_HTTP
  • 如何设计可靠的 IIoT 架构
  • 大数据新视界 --大数据大厂之Kubernetes与大数据:容器化部署的最佳实践
  • 【.NET全栈】ASP.NET实战—基于ASP.NET的求职系统设计与实现
  • uni-app开发流程(开发、预览、构建和发布过程)
  • 基于SSM的“新闻发布及管理系统”的设计与实现(源码+数据库+文档)
  • 【可测试性实践】C++单元测试:gtest gmock
  • MySQL示例:创建数据库与表
  • BOM编程
  • 基于OpenHarmony(开源鸿蒙)的智慧医疗综合应用系统
  • python植物大战僵尸项目源码【免费】
  • 国内版Microsoft Teams 基础版部署方案
  • 小商品市场配电系统安全用电解决方案
  • 创客中国AIGC专题赛冠军天鹜科技:AI蛋白质设计引领者
  • WPF中Viewbox的介绍和用法
  • 1.1 软件测试 + AI
  • 如何在windows中使用mac,要详细的教程
  • 热力学(涨落)单元的探索
  • C++ 起始帧数、结束帧数、剪辑视频
  • 【PHP】使用thinkphp5查询最大值时,把varchar类型字段转换成数字
  • jQuery css() 方法
  • 【已解决】【Windows】【Linux】大数据开发环境配置
  • python 实现chudnovsky algorithm楚德诺夫斯基算法