我想知道在Pandas中是否有更有效的方法来使用str.contains()
函数,以一次搜索两个部分字符串。我想要在数据帧的给定列中搜索包含“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'
有没有快速的方法来做这件事?
pd.Series.str.contains
更高效。如果性能是问题,那么这可能值得探究。 - jpp