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')
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')
チートシート
結合の種類 | 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 左、右、外部、内部、クロス結合