在 pandas 中,需要確定字串是否包含清單中存在的任何子字串。為了解決這個問題,可以使用 df.isin() 和 df[col].str.contains() 的組合。然而,這種方法被認為很麻煩。
更精緻的方法涉及利用 |正規表示式中的(管道)字元可同時匹配多個子字串。此技術需要使用'|'.join() 連接清單中的子字串:
searchfor = ['og', 'at'] s[s.str.contains('|'.join(searchfor))]
此方法有效地識別與任何指定子字串匹配的字串,從而產生精確的結果:
0 cat 1 hat 2 dog 3 fog dtype: object
在處理包含特殊字元的子字串時要小心,例如$ 和 ^在正規表示式中具有特定意義。為了確保文字匹配,請使用 re.escape() 轉義這些字元:
import re matches = ['$money', 'x^y'] safe_matches = [re.escape(m) for m in matches] s[s.str.contains('|'.join(safe_matches))]
以上是如何有效地檢查 Pandas 中是否包含多個子字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!