SQL では、GROUP BY 操作は、指定された列の値に基づいてデータをサブセットに分割します。 HAVING 句は、これらのサブセットにフィルター制約を適用します。この機能により、選択的なデータの集約とフィルタリングが可能になります。
Pandas では、GROUP BY オブジェクトを返す groupby()
メソッドを通じて GROUP BY 機能を利用できます。 Pandas で SQL HAVING 句に相当するのは filter()
メソッドで、groupby()
によって作成されたサブセットにフィルターを適用します。
<code>df.groupby(by_column).filter(filter_function)</code>
その中には:
df
は Pandas データフレームです。 by_column
はグループ化に使用される列です。 filter_function
は、各グループのブール値を返す関数です。 Pandas でグループ化されたデータセットにフィルターを適用するには、次の手順に従います:
groupby()
を呼び出して、GroupBy オブジェクトを作成します。 filter()
メソッドを使用して、各グループに filter_function
を適用します。 filter_function
は、各グループのブール値を返す必要があります。 次の Pandas DataFrame があるとします:
<code>df = pd.DataFrame([[1, 2], [1, 3], [5, 6]], columns=['A', 'B'])</code>
列 B の合計が 4 より大きいグループを見つけるには、次のコードを使用できます:
<code>result = df.groupby('A').filter(lambda x: x['B'].sum() > 4)</code>
結果は、フィルター基準を満たすグループの行を含む新しい DataFrame になります:
<code>print(result)</code>
出力:
<code> A B 0 1 2 1 1 3</code>
filter_function
には、Pandas グループを入力として受け入れ、ブール値を返す任意の有効な Python 関数を指定できます。 filter_function
はグループ化に使用される列にアクセスできないことに注意することが重要です。これらの列にアクセスする必要がある場合は、フィルターを適用する前に列ごとに手動でグループ化できます。 以上がSQL の GROUP BY HAVING 句を Pandas に実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。