【毎日Python】Pythonでデータフレームをカラムごとに集計する方法|DataFrame.agg

【毎日Python】Pythonでデータフレームをカラムごとに集計する方法|DataFrame.agg
import pandas as pd

Pythonでカラムごとに値を集計する方法です。
使用するのは、PythonのPandasライブラリのaggメソッドです。
似た名前のメソッドである、aggregate(アグリゲイト)メソッドでも同様に実行できます。
このようなデータフレームを作成します。

df = pd.DataFrame({'apple': [70, 82, 69, 98, 91], 'banana': [92, 80, 82, 95, 78], 'peach': [62, 75, 80, 79, 68]})
df
df.agg(['mean'])

まず、カラムごとの平均値を求めてみましょう。
引数に角括弧とシングルクォーテーションで、meanと指定します。
実行します。
カラムごとに平均値を集計することができました。

df.agg(['mean', 'max', 'min'])

複数の処理を同時に集計することもできます。
平均値、最大値、最小値を求めてみましょう。
最大値はmax、最小値はminを指定して実行します。
複数の値を集計することができました。

df.agg({'apple': ['sum', 'max'], 'banana': ['mean', 'min']})

次に、カラムを指定して、それぞれ別の処理を行ってみましょう。
appleは合計値と最大値を、bananaは平均値と最小値を求めてみます。
このように辞書型にして、キーにカラム名、値に求めたい値を指定して、実行します。
それぞれ指定した条件で集計することができました。

df = pd.read_csv('/content/sample.csv')
df
df.groupby('社員ID')['数量', '売上金額'].agg({'数量': 'sum', '売上金額': 'mean'})

また、aggメソッドは、groupbyメソッドと併用することもできます。
groupbyメソッドとは、カラムごとに値をグルーピングすることができるメソッドです。
このようなcsvファイルのデータを使用します。
groupbyメソッドで社員IDごとにグルーピングして、aggメソッドで数量の合計値と、売上金額の平均値を求めてみましょう。
実行します。
社員ごとの数量と売上金額を集計することができました。

関連メソッド

【毎日Python】Pythonでデータフレームを指定しカラムごとに集計する方法|DataFrame.groupby