はじめに
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
コメント