Pandas DataFrame を使用した文字列内の部分文字列の存在のテスト
Python の Pandas ライブラリで文字列データを操作する場合、次のことを確認する必要がある場合があります。文字列には、指定されたリストの任意の部分文字列が含まれます。 df.isin() や df[col].str.contains() など、部分文字列の存在をチェックするさまざまな関数がありますが、それらを組み合わせて使用するとやや複雑になる可能性があります。
パンダがあるとします。 「cat」、「hat」、「dog」、「fog」、「pet」などの文字列を含むシリーズ。「og」または「og」のいずれかを含むすべての文字列を識別したいと考えています。 "at."
解決策の 1 つは、「|」を使用してリスト内の任意の部分文字列と一致する正規表現パターンを採用することです。キャラクター。たとえば、「|」を使用して searchfor の部分文字列を結合することにより、次の正規表現を作成します。
>>> searchfor = ['og', 'at'] >>> regex_pattern = '|'.join(searchfor) >>> s[s.str.contains(regex_pattern)] 0 cat 1 hat 2 dog 3 fog dtype: object
このアプローチでは、「og」または「at」のいずれかを含む s 内のすべての文字列が効果的に検索されます。これは簡潔で効率的な方法です。
ただし、searchfor の部分文字列に「$」や「^」などの特殊文字が含まれている場合は、re.escape() を使用してそれらをエスケープし、リテラル一致を保証することが重要です。例:
>>> import re >>> matches = ['$money', 'x^y'] >>> safe_matches = [re.escape(m) for m in matches] >>> regex_pattern = '|'.join(safe_matches) >>> s[s.str.contains(regex_pattern)] 0 cat 1 hat 2 dog 3 fog dtype: object
特殊文字をエスケープすることで、str.contains で使用した場合に、特殊文字が文字通り各文字と一致することが保証されます。このアプローチは、Pandas シリーズでの部分文字列検出のための堅牢なソリューションを提供します。
以上がPandas シリーズ内の複数の部分文字列を効率的にチェックするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。