[pandasの使い方] 19. DataFrameの結合における内部結合と外部結合

Pandas
スポンサーリンク

pandasのDataFrameを結合する際の結合行の選択方法について

複数のDataFrameの結合(merge)におけるhowの使い方

pandasで複数のDataFrameを横方向に結合する方法として、.merge()がある。

一般的には、2つのデータで共通する部分のみが結合されるが、結合方法を指定することで、非共通部分も結合できる。ここでは、その方法について説明する。

データの生成

データは今川焼の人気投票数と価格のデータである(残念ながらデータは適用だが、御座候の価格のみ正しい)。今川焼きは同一形状のものが数多くあり、呼び名が複数ある。

.merge(how=’inner’)による結合

merge(df_1,df_2)により、df_1とdf_2の ‘number of votes’ と ‘value’が結合したDataFrameが得られる。innerは内部結合の意味で両方のデータフレームに共通するデータのみが結合される。

defaultでhow=innerであるため、上記の2つは同じ結果が得られている。

.merge(how=’outer’)による結合

how=’outer’とすることで、名前の和集合で結合が行われるため、df1とdf2でデータがない部分はNaNで穴埋めされる。

.merge(how=’right’)による結合

leftでは左のデータフレームの構造が維持され、rightでは右のデータフレームの構造が維持される。

列名が重複する場合

df1とdf3はnumber of votesの列名が重複している。

これを結合すると、それぞれの列名の後に、_x,_yがついた状態で結合される。

suffixes=[“_1”, “_2”]とすることで、列名の後につく接尾語を変えることができる。

参考

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

コメント