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