Python查询缺失值的4种方法总结

 更新时间:2022年05月07日 10:25:28   作者:朱小五  
缺失值可能是数据科学中最不受欢迎的值,然而,它们总是在身边。忽略缺失值也是不合理的,因此我们需要找到有效且适当地处理它们的方法。本文总结了四个Python查询缺失值的方法,需要的可以参考一下

在我们日常接触到的Python中,狭义的缺失值一般指DataFrame中的NaN。广义的话,可以分为三种。

  • 缺失值:在Pandas中的缺失值有三种:np.nan (Not a Number) 、 None 和 pd.NaT(时间格式的空值,注意大小写不能错)
  • 空值:空值在Pandas中指的是空字符串"";
  • 最后一类是导入的Excel等文件中,原本用于表示缺失值的字符“-”、“?”等。

今天聊聊Python中查询缺失值的4种方法。

缺失值 NaN ①

在Pandas中查询缺失值,最常用的⽅法就是isnull(),返回True表示此处为缺失值。

我们可以将其与any()⽅法搭配使用来查询存在缺失值的行,也可以与sum()⽅法搭配使用来查询存在缺失值的列。

  • isnull():对于缺失值,返回True;对于⾮缺失值,返回False。
  • any():⼀个序列中有⼀个True,则返回True,否则返回False。
  • sum():对序列进行求和计算。

在交互式环境中输入如下命令:

df.isnull()

输出:

图片

在交互式环境中输入如下命令:

df.isnull().any(axis=1)

输出:

图片

在交互式环境中输入如下命令:

df.isnull().sum()

输出:

图片

注:isna()和isnull()的用法是相同的,这里不再演示

缺失值 NaN ②

由于在Pandas中isnull()方法返回True表示此处为缺失值,所以我们可以对数据集进行切片也可实现找到缺失值。

在交互式环境中输入如下命令:

df[df.isnull().values==True]

输出:

图片

注意:如果某行有多个值是空值,则会重复次数出现,所以我们可以利用df[df.isnull().values==True].drop_duplicates()来去重。

另外,notnull()方法是与isnull()相对应的,使用它可以直接查询非缺失值的数据行。

df[df["A列"].notnull()]

输出:

图片

空值

空值在Pandas中指的是空字符串"",我们同样可以对数据集进行切片找到空值。

在交互式环境中输入如下命令:

df[df["B列"] == ""]

输出:

图片

此外,也可以利用空值与正常值的区别来区分两者,比如isnumeric()方法检测字符串是否只由数字组成。

在交互式环境中输入如下命令:

df[df["B列"].str.isnumeric() == False ]

输出:

图片

如上所示,同样查询到了数据集中的空值。

字符“-”、“?”等

很多时候,我们要处理的是本地的历史数据文件,在这些Excel中往往并不规范,比如它们有可能会使用“*”、“?”、“—”、“!”等等字符来表示缺失值。

对于这类文本,我们可以使用正则表达式来匹配缺失值。

import re
df[df["C列"].apply(lambda x: len(re.findall('NA|[*|?|!|#|-]', x)) != 0)]

输出:

图片

如上所示,我自定义了匿名函数lambda,作用是在文本列的每一行中查找以下文本值:“NA”、“*”、“?” 、“!” 、“#”、“-”,并检查它找到的列表的长度。如果列表不为零,则表示找到了代表缺失值的字符,因此该行中至少有一个缺失值。

df[df["D列"].apply(lambda x: len(re.findall('NA|[*|?|!|#|-]', x)) != 0)]

输出:

图片

我们可以对不同列都进行同样的缺失值查询,另外也可以根据自己的实际情况,替换正则表达式中代表缺失值的字符。

到此这篇关于Python查询缺失值的4种方法总结的文章就介绍到这了,更多相关Python查询缺失值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Python实现Mysql数据库相关操作详解

    使用Python实现Mysql数据库相关操作详解

    这篇文章主要介绍了使用Python实现Mysql数据库相关操作详解,pymysql是Python中操作数据库的第三方模块,通过这个模块的相关方法,我们可以连接并且去操作mysql数据库,需要的朋友可以参考下
    2023-08-08
  • Python base64和hashlib模块及用法详解

    Python base64和hashlib模块及用法详解

    这篇文章主要介绍了Python base64和hashlib模块,本文通过实例代码介绍了base64和hashlib模块的相关知识,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • Python批量操作Excel文件详解

    Python批量操作Excel文件详解

    因为博主所在的地方,需要每周整理全校的青年大学习数据,Excel操作本身不难,但是这种毫无意义的体力劳动做久了就会很无趣,刚好我想起来上学期接触过Python,想着能不能试一下,取代这种无意义的劳动
    2021-11-11
  • 使用Numpy读取CSV文件,并进行行列删除的操作方法

    使用Numpy读取CSV文件,并进行行列删除的操作方法

    今天小编就为大家分享一篇使用Numpy读取CSV文件,并进行行列删除的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • 使用Python编写脚本来生成随机密码

    使用Python编写脚本来生成随机密码

    在数字化时代,密码已成为我们保护个人信息和数据安全的重要手段,然而,手动创建复杂且难以猜测的密码是一项既繁琐又容易出错的任务,本文将详细介绍如何使用Python编写脚本来生成随机密码,并探讨其背后的原理和技术细节,需要的朋友可以参考下
    2024-10-10
  • 详解Python开发语言中的基本数据类型

    详解Python开发语言中的基本数据类型

    数据类型想必大家都知道是什么含义,指的是输入数据的类型,任何数据都有明确的数据类型。本文主要和大家聊聊Python的三种基本数据类型,感兴趣的可以了解一下
    2022-10-10
  • Pycharm远程连接服务器并运行与调试

    Pycharm远程连接服务器并运行与调试

    本篇文章介绍一下 Pycharm 如何配置远程连接信息,使其能够在本地使用服务器上的GPU等硬件资源,并在本地完成代码的运行与调试,感兴趣的可以了解一下
    2021-08-08
  • tensorflow 分类损失函数使用小记

    tensorflow 分类损失函数使用小记

    这篇文章主要介绍了tensorflow 分类损失函数使用小记,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Flask-蓝图 blueprint详情

    Flask-蓝图 blueprint详情

    这篇文章主要介绍了 Flask-蓝图 blueprint的相关资料,Blueprint 是一个存储视图方法的容器,这些操作在这个Blueprint 被注册到一个应用之后就可以被调用,Flask 可以通过Blueprint来组织URL以及处理请求,更多相关资料需要的小伙伴可以参考下面文章
    2021-11-11
  • Python函数进阶与文件操作详情

    Python函数进阶与文件操作详情

    这篇文章主要介绍了Python函数进阶与文件操作详情,文章为荣啊主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08

最新评论