データをマージしたい(pandas.merge

1left = pd.read_csv("測定データ")
2right = pd.read_csv("温度データ")
3merged = pd.merge(left, right, on="time", how="outer)

pandas.mergeで、 2つの異なるデータフレームを、あるカラムを基準としてひとつに結合できます。

参考

concatは同じカラムを持つデータフレームを縦方向に伸ばす結合、 mergeは異なるカラムを持つデータフレームを横方向に伸ばす結合、です。

異なるカラム名を基準にマージしたい(on / left_on / right_on

1# 共通のカラムがある場合
2merged = pd.merge(left, right, on="time")
3
4# 共通のカラムがない場合
5merged = pd.merge(left, right, left_on="datetime", right_on="timestamp")

onで基準としたいカラムを指定して、データフレームを結合します。 カラム名が異なる場合はlelft_onright_onでそれぞれ指定もできます。 複数のカラム名をリストで指定できます。

マージ方法を変更したい(how

 1// leftとrightで共通するアイテム
 2merged = pd.merge(left, right, how="inner")
 3
 4// leftとrightで共通しないイテム
 5merged = pd.merge(left, right, how="outer")
 6
 7// left優先
 8merged = pd.merge(left, right, how="left")
 9
10// right優先
11merged = pd.merge(left, right, how="right")
12
13//
14merged = pd.merge(left, right, how="cross")

howオプションを使って、マージ方法を変更できます。 デフォルトはinnter`で、共通するカラムの値でマージされます。 データを落とさないようにマージするならouter`にします。 データに主従関係があるならleft、もしくはrightにします。

マージ情報を確認したい(indicator

1merged = pd.merge(left, right, on="time", how="outer", indicator=True)

indicator=Trueオプションを使って、マージされた方法を確認できます。 デフォルトだと``_merge`カラムが追加され、そのアイテムがどのデータフレーム由来かが分かります。 マージ操作はぱっと見で分かりづらいので、想定通りのマージ結果になっているか確認しながら進めるとよいです。

リファレンス