[pandasの使い方] 18. 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()でも可能。

参考

Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習

コメント