部分文字列が一致する列を効率的に取得する
データ操作の領域では、データフレーム内の特定の列を検索することが一般的に必要になることがあります。 。ただし、列名内の特定のパターンを検索する必要があるが、完全一致は無視する場合はどうすればよいでしょうか?たとえば、「spike-2」、「heyspike」、「spiked-in」のような名前があり、「spike」を含む列を見つけたい場合、いくつかのハードルに遭遇する可能性があります。
問題:
完全に一致しない場合でも、名前に指定された文字列が含まれる列を識別するのは難しい場合があります。
解決策:
これを克服するには、データフレームの列全体で包括的なループを使用し、目的の文字列の各名前を調べます。これはリスト内包表記を使用して実現できます:
<code class="python">[col for col in df.columns if 'spike' in col]</code>
このスニペットは、指定された条件を満たすすべての列名で構成されるリストを生成します。
例:
次のデータフレームを考えてみましょう:
<code class="python">data = {'spike-2': [1,2,3], 'hey spke': [4,5,6], 'spiked-in': [7,8,9], 'no': [10,11,12]} df = pd.DataFrame(data) spike_cols = [col for col in df.columns if 'spike' in col]</code>
出力:
['spike-2', 'spiked-in']
代替アプローチ:
より簡潔な解決策については、次のことを検討してください。フィルター メソッドを使用します:
<code class="python">df2 = df.filter(regex='spike')</code>
このアプローチにより、指定された正規表現条件を満たす列のみを含むデータフレームが生成されます:
spike-2 spiked-in 0 1 7 1 2 8 2 3 9
これらの手法を適用すると、列を効率的に取得できます。データフレーム内では、名前が目的の文字列と正確に一致しない場合でも同様です。
以上がDataFrame で部分文字列が一致する列を効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。