如何在 pandas 数据框中使用 str.contains() 和多个表达式

2024-02-08

我想知道是否有更有效的方法来使用str.contains()Pandas 中的函数,一次搜索两个部分字符串。我想在数据框中的给定列中搜索包含“nt”或“nv”的数据。现在,我的代码如下所示:

df[df['Behavior'].str.contains("nt", na=False)]
df[df['Behavior'].str.contains("nv", na=False)]

然后我将一个结果附加到另一个结果上。我想做的是使用一行代码来搜索包含“nt”或“nv”或“nf”的任何数据。我尝试过一些我认为应该可行的方法,包括在术语之间插入一根管道,但所有这些都会导致错误。我已经检查了文档,但我不认为这是一个选项。我收到这样的错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-113-1d11e906812c> in <module>()
3 
4 
----> 5 soctol = f_recs[f_recs['Behavior'].str.contains("nt"|"nv", na=False)]
6 soctol

TypeError: unsupported operand type(s) for |: 'str' and 'str'

有没有快速的方法来做到这一点?


它们应该是一个正则表达式,并且应该在一个字符串中:

"nt|nv"  # rather than "nt" | " nv"
f_recs[f_recs['Behavior'].str.contains("nt|nv", na=False)]

Python 不允许您使用 or (|) 字符串运算符:

In [1]: "nt" | "nv"
TypeError: unsupported operand type(s) for |: 'str' and 'str'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 pandas 数据框中使用 str.contains() 和多个表达式 的相关文章

随机推荐