首頁 > 後端開發 > Python教學 > 如何有效地檢查 Pandas 系列中的多個子字串?

如何有效地檢查 Pandas 系列中的多個子字串?

Patricia Arquette
發布: 2024-12-14 15:04:11
原創
703 人瀏覽過

How Can I Efficiently Check for Multiple Substrings Within a Pandas Series?

使用Pandas DataFrame 測試字串中子字串的存在

在Python 的Pandas 庫中處理字串資料時,您可能會處理字串資料時,您可能會遇到需要確定是否字串包含給定清單中的任何子字串。雖然有多種函數可以檢查子字串是否存在,例如 df.isin() 和 df[col].str.contains(),但組合使用它們可能會有些複雜。

假設我們有一個Pandas Series 包含“cat”、“hat”、“dog”、“fog”和“pet”等字串,我們想要識別包含“og”或“og”的所有字串「at。」

一種解決方案是採用正規表示式模式,使用「|」來匹配清單中的任何子字串。特點。例如,透過使用「|」連接searchfor 中的子字串,我們建立一個正規表示式:

>>> searchfor = ['og', 'at']
>>> regex_pattern = '|'.join(searchfor)
>>> s[s.str.contains(regex_pattern)]
0    cat
1    hat
2    dog
3    fog
dtype: object
登入後複製

此方法有效地查找s 中包含「og」或「at」的所有字串。這是一種簡潔高效的方法。

但是,如果 searchfor 中的子字串包含“$”或“^”等特殊字符,則使用 re.escape() 對其進行轉義以確保字面匹配至關重要。例如:

>>> import re
>>> matches = ['$money', 'x^y']
>>> safe_matches = [re.escape(m) for m in matches]
>>> regex_pattern = '|'.join(safe_matches)
>>> s[s.str.contains(regex_pattern)]
0    cat
1    hat
2    dog
3    fog
dtype: object
登入後複製

透過轉義特殊字符,我們確保它們與 str.contains 一起使用時按字面匹配每個字符。這種方法為 Pandas Series 中的子串檢測提供了強大的解決方案。

以上是如何有效地檢查 Pandas 系列中的多個子字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板