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

忽略带有str.contains的NaN

景凌
2023-03-14
问题内容

我想查找包含字符串的行,如下所示:

DF[DF.col.str.contains("foo")]

但是,这失败了,因为某些元素是NaN:

ValueError:无法使用包含NA / NaN值的向量建立索引

所以我诉诸于混乱

DF[DF.col.notnull()][DF.col.dropna().str.contains("foo")]

有没有更好的办法?


问题答案:

有一个标志:

In [11]: df = pd.DataFrame([["foo1"], ["foo2"], ["bar"], [np.nan]], columns=['a'])

In [12]: df.a.str.contains("foo")
Out[12]:
0     True
1     True
2    False
3      NaN
Name: a, dtype: object

In [13]: df.a.str.contains("foo", na=False)
Out[13]:
0     True
1     True
2    False
3    False
Name: a, dtype: bool

参见str.replace文档:

na:默认NaN,填充缺失值的值。

因此,您可以执行以下操作:

In [21]: df.loc[df.a.str.contains("foo", na=False)]
Out[21]:
      a
0  foo1
1  foo2


 类似资料:
  • 问题内容: 我使用Spring-Data Neo4j 2.2.0-RELEASE。(我的以下问题将适用于任何其他类型的实体映射,为什么不适用于JPA) 在我的项目中,我有一个用Spring注释注释的公共方法,因为我想在其中更新/保存一个实体: 我的application-context.xml是以下内容: 正如我们在此配置中看到的,aspectJ用于事务。 因此,我尝试通过更改applicatio

  • 同时将warning的值设置为“all”或,没有任何结果。 checkstyle的文档很差。一些想法?

  • 问题内容: 我正在使用EclipseLink(2.5.1,也尝试过2.5.2-M1)构建一个Java SE 8(oracle 1.8.0-b129)应用程序,并且拥有一个Entity类,尽管已正确注释和删除,但EclipeLink只是忽略了它在persistence.xml文件中引用。日志中没有提及该类,没有为它生成任何模式,等等。使用该实体将给出“抽象模式类型未知”错误。 我想我终于找到了原因,

  • 问题内容: 我有以下代码,这些代码是从YouTube视频ID数组中获取JSON的。当所有视频都存在并且查询成功时,它非常有用。它发送几个getJSON请求,当所有请求都完成时… $ .when.done() 触发,我可以处理结果数据。 但是…在最终应用中,我无法控制YouTube中是否还存在所有视频,我意识到有时候列表中的一个(或几个)视频可能已被删除…或ID我从数据库得到的是不正确的。 有什么方

  • 我使用jsoup解析一些页面的链接,然后使用httpclient测试链接,看看它们是否工作。我网页上的一些链接是,我想忽略这些。

  • 问题内容: 我正在开发一个使用Spring-boot,关系数据库和Elasticsearch的应用程序。 我在代码的2个不同位置使用JSON序列化: 在REST API的响应中。 当代码与Elasticsearch交互时。 我在Elasticsearch中需要一些属性,但我想向应用程序用户隐藏(例如,来自关系数据库的内部ID)。 这是一个实体的例子: 问题 :当对象持久化在Elasticsearc