concat
,
merge
, join
メソッドがよく用いられています。 用途 | メソッド |
---|---|
単純にくっつけるだけ | concat |
特定のキーで紐付ける | merge |
インデックスをキーとする | join |
以下のテーブルを準備します。
import pandas as pd
# C: col => 列名
# R: row => 行名
d1 = {"group": ["a", "b", "c"],
"C1": [1, 2, 3],
"C2": [2, 4, 6],
"C3": [3, 6, 9]}
r1 = ["R1-1", "R1-2", "R1-3"]
d2 = {"group": ["a", "b", "c"],
"C1": [2, 5, 7],
"C2": [1, 3, 8],
"C3": [4, 7, 9]}
r2 = ["R2-1", "R2-2", "R2-3"]
d3 = {"group": ["a", "b"],
"C4": [7, 2],
"C5": [6, 1]}
r3 = ["R1-1", "R1-2"]
df1 = pd.DataFrame(d1, index=r1)
df2 = pd.DataFrame(d2, index=r2)
df3 = pd.DataFrame(d3, index=r3)
df1_nogroup = df1.drop("group", axis=1)
df3_nogroup = df3.drop("group", axis=1)
jupyter上で見るとこんな感じになります。
df.groupby("列名").集約関数()
でグループごとに集計することができます。
集約関数の一覧はPandas公式ページのgroupbyの説明ページに載っています。
df.groupby("group").sum() # groupごとの列の合計値を求める
df.集約関数()
でグループごとに集計することができます。
df.sum() # 列の合計値を求める
結果はseriesで返ってくるため、ここではDataFrameに変換し、転置することで見やすくしています。