[pandas] 17. DataFrameの結合(merge)

Pandas

はじめに

pandasのDataFrameを横方向に結合する(merge())について説明する。

解説

複数のDataFrameの結合(merge)

pandasで複数のDataFrameを横方向に結合する方法として、.merge()がある。ここでは、merge()の使い方について説明する。

データの生成

列カラム名(sample)が共通のDataFrame, df_1とdf_2を辞書データから生成する。各DataFrameのsampleの順番が異なっていることがわかる。

.merge()による結合

merge(df_1,df_2)により、df_1にdf_2の’date’が結合したDataFrameが得られる。

同様に、merge(df_2,df_1)とすれば、df_2にdf_1の’score’が結合したDataFrameが得られる。

形状の異なるDataFrameの結合

mergeしたデータフレームは形状が異なるが、dateとweatherが関連付けられているため、dateに適切なweatherが代入される。

left_on, right_onの使い方

df_6はdf_2のカラム名をsampleからdata_labelに変更したDataFrameである。

これを列名を保持したまま結合するには、left_onのdf_1のカラム名、right_onにdf_6のカラム名を指定すると、うまい具合にmergeされる。

結合のキーとしてインデックスを用いる

結合のキーとしてインデックスを用いることができる。

.set_index(‘sample’)でsampleをインデックスとしたDataFrameを作成している。
結合のキーとしてインデックスを用いるには、left_index=True, right_index=Trueとすればよい。

join()による結合

結合のキーとしてインデックスを用いることは、join()でも可能となっている。

参考

pandas.DataFrame.merge — pandas 2.2.3 documentation
pandas.DataFrame.join — pandas 2.2.3 documentation
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)

コメント