![](/img/trans.png)
[英]How to split dataframes with multiple categories using str.contains in python pandas?
[英]How to use str.contains() with multiple expressions, in pandas dataframes?
我想知道是否有更有效的方法來使用 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'
有沒有快速的方法來做到這一點? 感謝您的幫助,我是一個初學者,但我很喜歡用熊貓來處理數據。
它們應該是一個正則表達式,並且應該在一個字符串中:
"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'
我試試這個,它的工作:
df[df['Behavior'].str.contains('nt|nv', na=False)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.