Pandas を使って各種データセットの結合の方法を備忘録的にまとめたいと思います。とりあえず、まとめたところから公開したいと思います。今後、追加、編集していくブログになります。

左結合(Left Join)

左結合とは、DataFrame1(df1)にDataFrame2(df2)を結合するにあたり、キーとなる列(ここでは”key”列)でマッチする行を結合します

1
2
3
4
5
6
df1 = pd.DataFrame({'col1': ['A', 'B', 'C', 'D'],
                    'key': [1, 2, 3, 4]})
df2 = pd.DataFrame({'col2': ['C', 'D', 'E', 'F'],
                    'key': [3, 4, 5, 6]})

df1.merge(df2,how='left',on='key')

merge_left

df1.merge(df2,how='left',on='key')は、pd.merge(df1, df2,how=‘left’,on=‘key‘)でも可

インデックスJoin

merge left では軸となるキー列をon=キーとなる列名で指定しましたが、インデックスJoin ではデータフレームのインデックスに沿ってデータフレーム同士を結合します。

1
2
3
4
5
df1 = pd.DataFrame({'col1': ['A', 'B', 'C', 'D'],
                    'key': [1, 2, 3, 4]})
df2 = pd.DataFrame({'col2': ['C', 'D', 'E', 'F', 'G', 'H'],
                    'key': [3, 4, 5, 6, 7, 8]})
df1.join(df2, rsuffix='_2')

index_join


チートシート

結合の種類 Coding
左結合(left join) df1.merge(df2,how='left',on='key') または

pd.merge(df1, df2,how=‘left’,on=‘key‘)
インデックス Join df1.join(df2, rsuffix='_2')

参照ページ一覧

このブログを作成するにあたり、以下のページを参考にしています。併せてご覧ください。

1) データセットの結合 pd.concat 縦向き、横向き結合
2) 複数の行を連結して重複行を削除する
3) データセットの結合 pd.merge 左、右、外部、内部、クロス結合