首頁 >後端開發 >Python教學 >如何有效地檢查 Pandas 中是否包含多個子字串?

如何有效地檢查 Pandas 中是否包含多個子字串?

Patricia Arquette
Patricia Arquette原創
2024-12-05 01:29:14873瀏覽

How Can I Efficiently Check for Multiple Substring Inclusions in Pandas?

使用 Pandas 測試字串子字串包含

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

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