![見出し画像](https://assets.st-note.com/production/uploads/images/69881479/rectangle_large_type_2_fbca291afbe07ad2556f9d93b620682f.png?width=1200)
Photo by
golchiki
Pandas groupby 列ごとに集計関数を変える
pd.groupby().sum()とかはよく使うものの、
列ごとにここは合計、ここは平均といった
使い分けをする方法はSQLだと容易にできるがPandasではdplyr的な記法のagg()を使うことになる。
意外と浸透していないようなので記載。
import pandas as pd
df = pd.DataFrame([{'col_0': "A", 'col_1': 1, 'col_2': 2},
{'col_0': "A", 'col_1': 4, 'col_2': 5},
{'col_0': "B", 'col_1': 7, 'col_2': 8},
{'col_0': "B", 'col_1': 9, 'col_2': 6}])
![](https://assets.st-note.com/img/1642125423878-egmbB6G4ma.jpg)
# col_1の合計、col_2の件数を取得する。
df.groupby("col_0",as_index=False).agg(sum_col_1=("col_1","sum"),count_col_2=("col_2","count"))
![](https://assets.st-note.com/img/1642125491594-D62xXeOojw.jpg)
他にも以下の集計等が使える。
mean
max/min
std
この記事が気に入ったらサポートをしてみませんか?