Pandas での SQL の GROUP BY HAVING 関数の実装
SQL の GROUP BY HAVING
句を使用すると、ユーザーはグループレベルの条件に基づいてデータをフィルタリングでき、データの集約と分析の強力な方法を提供できます。 Pandas では、groupby
メソッドと filter
メソッドを組み合わせることによって同等の機能を実現できます。
groupby メソッド
groupby
メソッドは、指定された列に基づいて DataFrame を複数のグループに分割します。各グループには、グループ化列に同じ値を持つ行が含まれています。例:
<code class="language-python">import pandas as pd df = pd.DataFrame([[1, 2], [1, 3], [5, 6]], columns=['A', 'B']) g = df.groupby('A')</code>
生成された「g」オブジェクトは、各グループを個別のエンティティとして表す GroupBy オブジェクトです。
フィルターメソッド
filter
メソッドを使用すると、ユーザーは GroupBy オブジェクトにブール フィルターを適用できます。このフィルターは各グループに個別に作用し、カスタム基準に基づいて特定のグループを選択できるようにします。
SQL の HAVING 句をシミュレートするには、グループ自体の条件を評価するフィルター関数を定義できます。この関数は、グループが条件を満たしている場合は True を返し、そうでない場合は False を返す必要があります。例:
<code class="language-python">def filter_condition(group): return len(group) > 1 g.filter(filter_condition)</code>
この操作では、長さ (つまり行数) が 1 より大きいグループのみが選択されます。
パフォーマンスノート
最高のパフォーマンスを得るには、filter
メソッドが各グループを順番に処理することに注意してください。したがって、大規模なデータ セットの場合は、最適化されたフィルター関数を使用し、関数内で入れ子になったループや複雑な計算を使用しないことをお勧めします。
以上がPandas で SQL GROUP BY HAVING 機能を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。