ホームページ >バックエンド開発 >Python チュートリアル >Pandas GroupBy を使用してグループごとの統計 (数、平均、中央値、最小、最大) を取得するにはどうすればよいですか?
Pandas GroupBy を使用したグループごとの統計の取得
問題
指定された DataFrame df複数の列 (col1、col2 など)、グループを計算したい場合これらの列内の値の一意の組み合わせごとに、カウント、平均、中央値、最小値、最大値などの統計情報が表示されます。
アプローチ
Pandas は、包括的な groupby 関数を提供します。これにより、グループごとのデータ分析が可能になります。特定のグループ化キーに基づいてデータを集計および変換できます。
Count
各グループの行数を取得するには、.size() メソッドを使用します。 。各一意のグループの行数を含む Series を返します。例:
df.groupby(['col1', 'col2']).size()
このシリーズを DataFrame に変換するには、.reset_index(name='counts'):
df.groupby(['col1', 'col2']).size().reset_index(name='counts')
Multiple Statistics を使用できます。
グループごとに複数の統計を計算するには、.agg() メソッドを使用します。計算する統計情報を、列名をキー、集計関数を値として使用するディクショナリとして指定できます。たとえば、列col3とcol4の平均、中央値、最小値を計算するには:
df.groupby(['col1', 'col2']).agg({ 'col3': ['mean', 'count'], 'col4': ['median', 'min', 'count'] })
統計を結合
異なる集計を単一のデータフレームに結合するには、次のようにします。結合メソッドを使用できます。これにより、共通の列に基づいて複数の DataFrame をマージできます。たとえば、数、平均、中央値、最小値を組み合わせた結果を作成するには:
counts = df.groupby(['col1', 'col2']).size().to_frame(name='counts') counts.join(gb.agg({'col3': 'mean'}).rename(columns={'col3': 'col3_mean'})) \ .join(gb.agg({'col4': 'median'}).rename(columns={'col4': 'col4_median'})) \ .join(gb.agg({'col4': 'min'}).rename(columns={'col4': 'col4_min'})) \ .reset_index()
以上がPandas GroupBy を使用してグループごとの統計 (数、平均、中央値、最小、最大) を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。