今回は、pandasを利用してデータの集計したりする、より実践的な操作方法について説明したいと思います。集計は、groupbyを利用して同じデータをまとめて、その纏めたデータを対象に各種の計算をします。SQLで言うところのgroup byと同じような動作をします。
目次
- 簡単な集計方法
- グルーピングと結合
- 集計表作成
簡単な集計方法
pandas.DataFrame(df)にデータを取り込みしているとして、一番簡単なグルーピングと集計方法を説明する。
df.groupby(“label”)
df.groupby(“label”).sum()
合計以外によく利用するのは
平均:mean(), 個数:count(), 最大値:max(), 最小値:min()
グルーピングと結合
色んなグルーピング方法
df.groupby(“label”).get_group(“a”)
df.groupby([‘label1’, ‘label2’])
複数の pandas.DataFrame を結合する方法、SQLで言うJOIN
df と df1 の keyを比較して結合
df = pd.merge(df, df2, on=”key”, how=”left”)
on: 2つのデータフレームで比較する列
2つの表の列名が違うものをキーに結合したい場合は、left_on=, right_on=を使う
how: 結合方法. left, right, inner, outer
集計表作成
グルーピングして集計表を作成する方法を Aggregation を言い、agg()を利用する。agg()に定義されている関数がいくつか定義されている。
df.groupby(“label”).agg(np.sum)
合計を求めるには、np.sum もしくは 文字列 “sum” を指定する
最小値:np.min、”min”
最大値:np.max、”max”
平均値:np.mean、”mean”
中央値:np.median、”median”
標準偏差:np.std、”std”
df.groupby(“label”).agg({“個数”:”count”,”合計”:”sum”})
列名をキーとした辞書(dict型オブジェクト)で列ごとに異なる処理を適用することも可能。