pandasパターン - 集約

集約はpandasならではの機能です。
集約したのちに結合こともよくあります。

前置き

以下のテーブルを準備します。

import pandas as pd
# C: col => 列名
# R: row => 行名 
d = {"group": ["a", "a", "b"],
     "C1": [1, 2, 3],
     "C2": [2, 4, 6],
     "C3": [3, 6, 9]}
r = ["R1", "R2", "R3"]

df = pd.DataFrame(d, index=r)

jupyter上で見るとこんな感じになります。

pandasのDataFrame

グループにわけて集計

df.groupby("列名").集約関数() でグループごとに集計することができます。

集約関数の一覧はPandas公式ページのgroupbyの説明ページに載っています。

df.groupby("group").sum() # groupごとの列の合計値を求める

全体を集計

df.集約関数() でグループごとに集計することができます。

df.sum()  # 列の合計値を求める

結果はseriesで返ってくるため、ここではDataFrameに変換し、転置することで見やすくしています。