ホームページ >バックエンド開発 >Python チュートリアル >Pandas DataFrame 列内の複数の部分文字列を効率的に確認するにはどうすればよいですか?

Pandas DataFrame 列内の複数の部分文字列を効率的に確認するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-30 12:17:11867ブラウズ

How Can I Efficiently Check for Multiple Substrings Within a Pandas DataFrame Column?

複数の部分文字列を使用した Pandas DataFrame での部分文字列の存在のテスト

pandas では、df.isin() と df[col].str を組み合わせます。 contains() を使用して文字列にリスト内の部分文字列が含まれているかどうかを確認するのは面倒な作業です。この記事では、正規表現と str.contains() メソッドを使用した代替ソリューションを提供します。

説明のために、['cat','hat','dog','fog',' を含む系列を考えてみましょう。ペット']。 「pet」を除く、「og」または「at」のいずれかを含むすべての要素を検索するには、次のコードを使用できます:

searchfor = ['og', 'at']
jointed_regex = '|'.join(searchfor)
s[s.str.contains(jointed_regex)]

出力は次のようになります:

0    cat
1    hat
2    dog
3    fog
dtype: object

部分文字列を「|」で結合することで、

特殊文字の処理

特殊文字を含む部分文字列を処理する場合、str.contains() メソッドは効果的に文字列要素内の任意の部分文字列と一致することに注意してください。 $ や ^ などの文字を含む場合は、re.escape() を使用してエスケープする必要があります。これにより、照合プロセス中に文字が文字通りに解釈されることが保証されます。

たとえば、searchfor に ['money', 'x^y']:

import re
safe_searchfor = [re.escape(m) for m in searchfor]
s[s.str.contains('|'.join(safe_searchfor))]

が含まれる場合、このコードは特殊文字を使用し、部分文字列の正確な一致を保証します。

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

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