pandasを利用してデータの集計など、実践的な操作方法

blog-icatch-66

今回は、pandasを利用してデータの集計したりする、より実践的な操作方法について説明したいと思います。集計は、groupbyを利用して同じデータをまとめて、その纏めたデータを対象に各種の計算をします。SQLで言うところのgroup byと同じような動作をします。

目次

  • 簡単な集計方法
  • グルーピングと結合
  • 集計表作成

簡単な集計方法

pandas.DataFrame(df)にデータを取り込みしているとして、一番簡単なグルーピングと集計方法を説明する。

グルーピング方法

df.groupby(“label”)

グルーピングしたデータを合計

df.groupby(“label”).sum()

ポイント

合計以外によく利用するのは

平均:mean(), 個数:count(), 最大値:max(), 最小値:min()

グルーピングと結合

色んなグルーピング方法

列名labelでグルーピング後、データaを抽出

df.groupby(“label”).get_group(“a”)

複数の列名でグルーピング

df.groupby([‘label1’, ‘label2’])

複数の pandas.DataFrame を結合する方法、SQLで言うJOIN

結合する方法(left 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型オブジェクト)で列ごとに異なる処理を適用することも可能。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


上の計算式の答えを入力してください

CAPTCHA