df.agg()にgroupbyが使えると聞いて

グループごとに個数・平均値・中央値など複数の集計を出したいときにdf.groupby().agg()を使うと便利ですよ。

これは個人のブログなので間違いがあるかもしれませんので、正しい情報が欲しい人は公式ドキュメントを読んでください。

サンプルコード

import pandas as pd
import numpy as np

df = pd.DataFrame({'A':[1, 2, 3, 4, 5, np.nan],
                  'B':[29, 30, 31, 32, 33, 11],
                  'C':['a', 'a', 'b', 'b', 'c', 'c']})

f:id:data1:20200614130303j:plain

C列でグルーピングして集計したいときはこんな感じ

df.groupby('C').agg(['sum', 'mean', 'count'])

f:id:data1:20200614131035j:plain

さらに、Bカラムだけの集計値だけが欲しいというときはこんな感じ。

df.groupby('C').B.agg(['sum', 'mean', 'count'])

f:id:data1:20200614131650j:plain