首頁 >後端開發 >Python教學 >正規表示式如何優化 Pandas 對系列中多個子字串的過濾?

正規表示式如何優化 Pandas 對系列中多個子字串的過濾?

Linda Hamilton
Linda Hamilton原創
2024-11-28 11:26:11716瀏覽

How Can Regular Expressions Optimize Pandas Filtering for Multiple Substrings in a Series?

系列中多個子字串的Pandas 過濾最佳化

背景

根據字串中的多個子字串過濾大型Pandas 資料幀列可能是一項計算成本較高的操作。傳統的方法是為每個子字串應用掩碼,然後使用邏輯運算來減少它。

建議的方法

為了提高效率,我們建議利用正規表示式(帶有轉義)特殊字元)用於子字串匹配。透過使用正規表示式管道 (|) 連接轉義子字串,我們可以針對字串測試每個子字串,直到找到匹配項。

實現

import re

# Escape special characters in substrings
esc_lst = [re.escape(s) for s in lst]

# Join escaped substrings using regex pipe
pattern = '|'.join(esc_lst)

# Filter based on concatenated pattern
df[col].str.contains(pattern, case=False)

效能注意事項

透過減少數量來增強表現每行所需的測試數。此方法會檢查子字串,直到找到匹配項,從而消除不必要的迭代。

基準測試

使用包含50,000 個字串和100 個子字串的範例資料幀,所提出的方法大約需要1其次,與傳統方法的五秒相比。這種效能優勢會隨著資料集的增加而增加。

結論

透過利用帶有轉義特殊字元的正規表示式,我們可以有效地過濾Pandas 資料幀中的多個子字串,從而顯著減少計算開銷。

以上是正規表示式如何優化 Pandas 對系列中多個子字串的過濾?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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