• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python中查询缺失值的4种方法

python 搞java代码 3年前 (2022-06-26) 73次浏览 已收录 0个评论
文章目录[隐藏]

在咱们日常接触到的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 常识欢送返回公众号:搞代码网,每日干货分享,发送“J”还可支付大量学习材料。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python中查询缺失值的4种方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址