当前位置: 首页 > 面试题库 >

有效检查Python / numpy / pandas中是否有任意对象是NaN?

郭彬郁
2023-03-14
问题内容

我的numpy数组用于np.nan指定缺少的值。在遍历数据集时,我需要检测这些缺失值并以特殊方式处理它们。

我天真地用过numpy.isnan(val),除非val不在所支持的类型子集中,否则它会很好地工作numpy.isnan()。例如,字符串字段中可能会出现丢失的数据,在这种情况下,我得到:

>>> np.isnan('some_string')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Not implemented for this type

除了编写昂贵的包装来捕获异常并返回外False,还有没有办法优雅而有效地处理此包装?


问题答案:

pandas.isnull()(也是pd.isna(),在较新的版本中)检查数字数组和字符串/对象数组中的缺失值。从文档中,它检查:

数字数组中的NaN,对象数组中的None / NaN

快速示例:

import pandas as pd
import numpy as np
s = pd.Series(['apple', np.nan, 'banana'])
pd.isnull(s)
Out[9]: 
0    False
1     True
2    False
dtype: bool

numpy.nan用来表示缺失值的想法是pandas引入的,这就是为什么pandas有工具来处理它的原因。

日期时间也是如此(如果使用pd.NaT,则无需指定dtype)

In [24]: s = Series([Timestamp('20130101'),np.nan,Timestamp('20130102 9:30')],dtype='M8[ns]')

In [25]: s
Out[25]: 
0   2013-01-01 00:00:00
1                   NaT
2   2013-01-02 09:30:00
dtype: datetime64[ns]``

In [26]: pd.isnull(s)
Out[26]: 
0    False
1     True
2    False
dtype: bool


 类似资料:
  • 我正在将带有用户信息的对象从客户端发送到我的服务器: 我害怕一个“坏用户”,试图黑我的系统修改客户端,就像这样: 然后,如果我在服务器中得到这个对象,并更新数据库,用户就会很有名,而且是溢价的。 在服务器端,我只需要字段“name”、“username”、“gender”和“avatar”。 如果对象“NewUserData”有其他意外的字段,我如何签入node.js? 注意:我正在寻找一个通用的

  • 我想检查一个对象是否有新的子对象。我的意思是我有一个带有x嵌套对象的对象,但是如果主对象有新对象,我会检查它。有什么现有的解决方案来检查这个问题吗? 我的目标是如果对象有新项目,则调用函数。每次数组更改时,此代码都会调用该函数。也当一些项目被删除。这部分功能是错误的。有办法修好它吗?

  • 问题内容: 我通过HTTP上载获得文件,并且需要确保它是pdf文件。 编程语言是Python,但这无关紧要。 我想到了以下解决方案: 检查字符串的第一个字节是否为“%PDF”。 这不是一个很好的检查,但是可以防止用户意外上传其他文件。 尝试libmagic(bash上的“文件”命令使用它)。 这与(1)中的检查完全相同 获取一个lib并尝试从文件中读取页数。 如果该库能够读取一个页面计数,则它应该

  • 以下是场景: 我有一个日期和一个不同的日期格式。示例: 日期:2016-10-19 日期格式:“DD-MM-YYYY”。 我需要检查这个日期是否有效。 我尝试过跟踪事情 d.isValid()每次返回false。Moment.js解析给定格式的日期吗? 然后我尝试先在中格式化日期,然后将其传递给矩。js: 现在<代码>日期。isValid()给了我想要的结果,但现在是时候了。js日期对象创建两次。

  • 问题内容: 我很惊讶地发现这种情况总是成立的: 似乎无论最初是什么类型,它都将转换为相应类的实例。是否存在确定对象是否可靠的方法? 问题答案: 更新 我在下面显示的代码被报告在发行版本中不起作用。(请参阅下面的Paul Cantrell的评论。) 对于我的“据我测试”的道歉过于有限。 当我找到关于此的更多信息时,我将更新此答案。 我不确定我们是否可以在下一个Beta(或GM或已发布的版本…)中看到

  • 本文向大家介绍检查字符串在Python中是否有效JSON,包括了检查字符串在Python中是否有效JSON的使用技巧和注意事项,需要的朋友参考一下 JSON是一种文本格式,用于在各种计算机程序之间轻松交换数据。它具有Python可以验证的特定格式。在本文中,我们将考虑一个字符串,并使用JSON模块验证该字符串是否表示有效的JSON格式。 创建JSON对象 json模块具有称为load的方法。它加载