ホームページ >バックエンド開発 >Python チュートリアル >Pandas シリーズに指定されたリストの部分文字列が含まれているかどうかを効率的に確認するにはどうすればよいですか?

Pandas シリーズに指定されたリストの部分文字列が含まれているかどうかを効率的に確認するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-30 01:37:10888ブラウズ

How Can I Efficiently Check if a Pandas Series Contains Any Substring from a Given List?

Pandas での文字列部分文字列の包含のテスト

Pandas シリーズ内の文字列に指定されたリストのいずれかが含まれているかどうかを確認する効率的な方法を探しています。部分文字列?これに関するクエリは以下にあります:

元のクエリ:

df.isin() と df[col] の機能を組み合わせたパンダ関数はありますか.str.contains()?私は、シリーズに指定されたリストの部分文字列が含まれるすべてのインスタンスを識別することを目指しています。

提案された解決策:

フォーラムで提案された 1 つのアプローチでは、ループとリストの内包表記が使用されました。シリーズ内の各部分文字列を確認します。ただし、より簡潔で効率的なソリューションが存在します。

正規表現ベースのソリューション:

正規表現の利用 |演算子を使用すると、指定されたリスト内の各部分文字列に一致する正規表現を構築できます。この正規表現を str.contains とともに使用して、系列をフィルタリングして目的の値を得ることができます。

import re

searchfor = ['og', 'at']
regex = '|'.join(searchfor)
df['matching_column'][df['matching_column'].str.contains(regex)]

このアプローチは、反復法より効率的であり、効果的に目的の結果を達成します。

特殊文字の処理:

部分文字列に正規表現の意味を持つ特殊文字 ($ など) が含まれている場合または ^ の場合は、re.escape() を使用してエスケープして、文字どおりに解釈されるようにする必要があります。

以上がPandas シリーズに指定されたリストの部分文字列が含まれているかどうかを効率的に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。