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

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

Patricia Arquette
Patricia Arquette原創
2024-12-14 15:04:11704瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn