ホームページ >バックエンド開発 >Python チュートリアル >Pandas GroupBy を使用してグループごとの統計 (数、平均、中央値、最小、最大) を取得するにはどうすればよいですか?

Pandas GroupBy を使用してグループごとの統計 (数、平均、中央値、最小、最大) を取得するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-21 15:03:14846ブラウズ

How Can I Retrieve Group-Wise Statistics (Count, Mean, Median, Min, Max) Using 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。