【数据分析】Python:处理缺失值的常见方法

这篇具有很好参考价值的文章主要介绍了【数据分析】Python:处理缺失值的常见方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在数据分析和机器学习中,缺失值是一种常见的现象。在实际数据集中,某些变量的某些条目可能没有可用的值。处理缺失值是一个重要的数据预处理步骤。在本文中,我们将介绍如何在 Pandas 中处理缺失值。

我们将探讨以下内容:

  • 什么是缺失值;

  • 如何在 Pandas 中识别缺失值;

  • 处理缺失值的常见方法;

  • Pandas 中处理缺失值的代码示例;

  1. 我们还提供了一个随机生成的包含缺失值的较大数据集,可以使用这个数据集来练习和尝试这些方法。

===

python检查缺失值,数据分析,python,数据挖掘

01.什么是缺失值

缺失值是指数据集中某些变量的某些条目缺少值。这些条目可以是空值、NaN(不是数字)或其他标记。缺失值可能是由于数据输入错误、数据丢失或其他原因导致的。在分析数据集时,缺失值可能会影响结果,因此需要对其进行处理。在 Pandas 中,缺失数据由两个值表示:None:None 通常用于 Python 代码中的缺失数据,NaN :NaN(Not a Number 的首字母缩写词)。

python检查缺失值,数据分析,python,数据挖掘

02.如何在 Pandas 中识别缺失值

在 Pandas 中,我们可以使用 isnull() 或 notnull() 函数来识别缺失值。不同之处在于,isnull()函数发现数据中有空值或缺失值的时候返回True,notnull()返回的是False。 这些函数返回一个布尔数组,该数组指示每个元素是否为空值。例如,假设我们有一个数据框 df,我们可以使用以下代码检查缺失值。

import pandas as pd # 创建一个包含缺失值的数据框 df = pd.DataFrame({‘A’: [1, 2, None, 4, None], ‘B’: [5, None, 7, 8, None]}) # 检查数据框中的缺失值 print(df.isnull()) df

输出结果为,如下在第3行第1列和第2行第2列存在缺失值。

        A      B  0  False  False  1  False   True  2   True  False  3  False  False  4   True   True  Out\[2\]:       A    B  0  1.0  5.0  1  2.0  NaN  2  NaN  7.0  3  4.0  8.0

上述代码将检查 df 数据框中的缺失值,并返回一个布尔数组,该数组指示每个元素是否为空值。True 表示该元素是一个缺失值。

python检查缺失值,数据分析,python,数据挖掘

python检查缺失值,数据分析,python,数据挖掘

03.处理缺失值的常见方法

在处理缺失值时,我们有许多方法可供选择。下面是一些常见的方法,函数形式:dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)

3.1

删除缺失值

删除缺失值是处理缺失值的最简单方法之一。我们可以使用 dropna() 函数从数据框中删除包含缺失值的行或列。例如,如果我们希望删除包含任何缺失值的行,我们可以使用以下代码,其中how默认参数为’any’。

# 删除包含任何缺失值的行 df.dropna()

删除时,有一个how参数介绍如下:

**how:**筛选方式。'any’,表示该行/列只要有一个以上的空值,就删除该行/列;'all’,表示该行/列全部都为空值,就删除该行/列。

我们可以使用以下代码,其中参数all表示该行/列全部都为空值,就删除该行/列。

# 删除的行和列必须都为空值 df.dropna(how=‘all’)

如下所示,第一行代码将所有存在空值的行删除,而第二行代码只是将最后一行全空的值删除。

python检查缺失值,数据分析,python,数据挖掘

如果我们希望只要出现缺失值,就删除所在的行,我们可以使用以下代码,设置参数为’any’。

# 只要出现缺失值,就删除 df.dropna(how=‘any’)

如果我们希望删除包含缺失值的列,我们可以使用以下代码:

  # 删除包含缺失值的列  df.dropna(axis=1)

如下所示,其中df是原始的值,运行结果如下可对照结果进行分析。

python检查缺失值,数据分析,python,数据挖掘

3.2

替换缺失值

替换缺失值是处理缺失值的另一种常见方法。我们可以使用 fillna() 函数将缺失值替换为其他值。例如,如果我们希望将缺失值替换为 0,我们可以使用以下代码:

# 将缺失值替换为 0 df.fillna(0)

我们还可以使用其他值来替换缺失值。例如,我们可以使用以下代码将缺失值替换为每列的平均值:



  # 将缺失值替换为每列的平均值  df.fillna(df.mean())


两处代码的运行结果如下所示,分别对应原始值、缺失值替换。

python检查缺失值,数据分析,python,数据挖掘

3.3

插值缺失值

插值是一种更高级的缺失值处理方法。它可以使用现有数据来推断缺失值。我们可以使用 interpolate() 函数在 Pandas 中进行插值。例如,我们可以使用以下代码在每列上进行线性插值:

# 线性插值 df.fillna(df.interpolate())

python检查缺失值,数据分析,python,数据挖掘

python检查缺失值,数据分析,python,数据挖掘

04.Pandas 中处理缺失值的完整代码示例

下面是完整的在 Pandas 中处理缺失值的代码示例:



import pandas as pd    # 创建一个包含缺失值的数据框  df = pd.DataFrame({'A': \[1, 2, None, 4\], 'B': \[5, None, 7, 8\]})    # 检查数据框中的缺失值  print(df.isnull())    # 删除包含任何缺失值的行  print(df.dropna())    # 删除整行都是缺失值的行  print(df.dropna(how='all'))    # 删除包含任何缺失值的行  df.dropna(how='any')    # 删除包含缺失值的列  print(df.dropna(axis=1))    # 将缺失值替换为 0  print(df.fillna(0))    # 将缺失值替换为每列的平均值  print(df.fillna(df.mean()))    # 线性插值  print(df.interpolate())  print(df.fillna(df.interpolate()))

  



如上所示,我们先介绍了如何在 Pandas 中处理缺失值。我们讨论了如何识别缺失值,并介绍了处理缺失值的常见方法。我们还提供了一些代码示例,以便您可以在自己的项目中使用。处理缺失值是数据预处理的重要步骤,等下我们再介绍一些高级的缺失值处理方法。

python检查缺失值,数据分析,python,数据挖掘

05.高级缺失值处理方法

除了前面提到的基本缺失值处理方法,还有一些高级缺失值处理方法,可以进一步提高数据处理的精度。

5.1

多重插补

多重插补是一种使用现有数据集中其他相关变量的信息来推断缺失值的方法。在 Pandas 中,我们可以使用 fancyimpute 库来执行多重插补。以下是一个示例,结果也如下所示。

from fancyimpute import IterativeImputer # 创建一个包含缺失值的数据框 df = pd.DataFrame({‘A’: [1, 2, None, 4,None], ‘B’: [5, None, 7, 8, None]}) # 使用多重插补 imputer = IterativeImputer() imputed_df = imputer.fit_transform(df) imputed_df

python检查缺失值,数据分析,python,数据挖掘

5.2

高级回归模型

对于更复杂的数据集,使用高级回归模型可以进一步提高缺失值处理的精度。例如,可以使用 XGBoost 或 LightGBM 等模型来处理缺失值。以下是一个使用 LightGBM 处理缺失值的示例:



  import lightgbm as lgb    # 创建一个包含缺失值的数据框  df = pd.DataFrame({'A': \[1, 2, None, 4,None\], 'B': \[5, None, 7, 8, None\]})    # 定义 LightGBM 模型  params = {      'objective': 'regression',      'metric': 'mse',      'num\_leaves': 5,      'learning\_rate': 0.05,      'feature\_fraction': 0.5  }    # 使用 LightGBM 处理缺失值  dtrain = lgb.Dataset(df.drop('A', axis=1), label=df\['A'\].dropna())  gbm = lgb.train(params, dtrain)  df\['A'\] = gbm.predict(df.drop('A', axis=1))


当然这个代码我们还在调试中呀,可以自己复制运行下~只有自己写了才会更加熟悉代码呀。

python检查缺失值,数据分析,python,数据挖掘

python检查缺失值,数据分析,python,数据挖掘

结论

python检查缺失值,数据分析,python,数据挖掘

在数据处理中,处理缺失值是非常重要的。在 Pandas 中,我们可以使用多种方法来处理缺失值,包括删除包含缺失值的行或列、替换缺失值和插值缺失值等基本方法。此外,我们还可以使用多重插补和高级回归模型等高级方法来提高缺失值处理的精度。希望本文能够帮助更好地处理缺失值,提高数据处理的效率和精度。

---------------------------END---------------------------

题外话

python检查缺失值,数据分析,python,数据挖掘

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

python检查缺失值,数据分析,python,数据挖掘
python检查缺失值,数据分析,python,数据挖掘

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!python检查缺失值,数据分析,python,数据挖掘

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

python检查缺失值,数据分析,python,数据挖掘

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

python检查缺失值,数据分析,python,数据挖掘

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

python检查缺失值,数据分析,python,数据挖掘

六、面试宝典

python检查缺失值,数据分析,python,数据挖掘

python检查缺失值,数据分析,python,数据挖掘

简历模板python检查缺失值,数据分析,python,数据挖掘

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除文章来源地址https://www.toymoban.com/news/detail-774982.html

到了这里,关于【数据分析】Python:处理缺失值的常见方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据缺失值的4种处理方法

    缺失值的产生的原因多种多样,主要分为机械原因和人为原因。机械原因是由于机械原因导致的数据收集或保存的失败造成的数据缺失,比如数据存储的失败,存储器损坏,机械故障导致某段时间数据未能收集(对于定时数据采集而言)。 人为原因是由于人的主观失误、历史

    2024年02月04日
    浏览(35)
  • Python数据分析实战-dataframe筛选某字段包含(模糊匹配)某些值的记录(附源码和实现效果)

    实现功能 Python利用df[\\\'\\\'].str.contains()对dataframe筛选某字段包含(模糊匹配)某些值的记录 实现代码 实现效果  本人读研期间发表5篇SCI数据挖掘相关论文,现在某研究院从事数据挖掘相关科研工作,对数据挖掘有一定认知和理解,会结合自身科研实践经历不定期分享关于pytho

    2024年02月15日
    浏览(34)
  • 数据分析课程设计(数学建模+数据分析+数据可视化)——利用Python开发语言实现以及常见数据分析库的使用

    目录 数据分析报告——基于贫困生餐厅消费信息的分类与预测 一、数据分析背景以及目标 二、分析方法与过程 数据探索性与预处理 合并文件并检查缺失值 2.计算文件的当中的值 消费指数的描述性分析 首先对数据进行标准化处理 聚类模型的评价 聚类模型的结果关联 利用决

    2024年02月12日
    浏览(57)
  • 数据分析过程中,发现数值缺失,怎么办?

    按照数据缺失机制,数据分析过程中,我们可以将其分为以下几类: (1)完全随机缺失(MCAR):所缺失的数据发生的概率既与已观察到的数据无关,也与未观察到的数据无关。 (2)随机缺失(MAR):假设缺失数据发生的概率与所观察到的变量是有关的,而与未观察到的数

    2024年02月05日
    浏览(52)
  • R语言中缺失值的处理

    目录 一.寻找缺失值 1.complete.cases() 2.manyNAs 二.缺失值的处理 1.直接删除 2.填补缺失值 一.寻找缺失值 1.complete.cases() 2.manyNAs 二.缺失值的处理 1.直接删除 (1)na.omit() (2)删除缺失值较多的记录 2.填补缺失值 (1)根据相关关系填补缺失值 PO4=42.897+1.293*oPO4  #如果PO4为缺失值,可以

    2024年02月10日
    浏览(45)
  • python大数据分析处理

    Python在大数据分析处理方面有着广泛的应用,其丰富的库和生态系统让Python更加易于使用和定制。本文将介绍Python在大数据分析处理方面的示例。 首先,我们需要导入一些核心的Python库,例如numpy、pandas和matplotlib。这些库不仅提供基本的数组、表格和绘图功能,还能帮助处理

    2024年02月08日
    浏览(43)
  • Python数据分析处理报告--实训小案例

    目录 1、实验一 1.1、题目总览 1.2、代码解析 2、实现二 2.1、题目总览 2.2、代码解析 3、实验三 3.1、题目总览 3.2、代码解析 4、实验四 3.1、题目总览 3.2、代码解析 哈喽~ 今天学习记录的是数据分析实训小案例。 就用这个案例来好好巩固一下 python 数据分析三剑客。 前期准备

    2024年02月10日
    浏览(51)
  • 基于Python的微信聊天记录分析——数据处理与分析

    本篇为《基于Python的微信聊天记录分析》系列的第二篇,主要讲解获取到聊天记录数据之后,在Python环境下对其进行数据处理、分析和可视化,涉及库的安装、相关操作的Python代码等内容。希望和大家多多交流,共同进步! 数据分析的基础是“数据”,俗话说基础不牢,地动

    2024年02月19日
    浏览(56)
  • Python数据分析之特征处理笔记三——特征预处理(特征选择)

    书接上文,进行数据清洗过程后,我们得到了没有空值、异常值、错误值的数据,但想要用海量的数据来建立我们所需要的算法模型,仅仅是数据清洗的过程是不够的,因为有的数据类型是数值,有的是字符,怎样将不同类型的数据联系起来?以及在保证最大化信息量的前提

    2024年02月02日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包