merge関数とjoin関数とがありました。merge関数は列データをキーとするjoin関数はインデックスラベルをキーとするという点に違いがあります。join関数では複数のDataFrame(またはSeries)を結合することが可能です。詳しい解説は以下の記事を参考にしてください。/features/pandas-join.html今回紹介するconcat関数はただつなぎ合わせるような特徴が強い関数となっており、その分手軽に使うことができます。複雑な連結処理をする必要がない場合、concat関数を使って連結するのが簡単でしょう。concat関数APIドキュメントまずはAPIドキュメントから見ていきます。結合したいデータを指定します。辞書形式で渡された場合、ソートされた辞書のキーがkey引数の値として使われます。(省略可能)初期値0結合する方向を指定します。デフォルトでは縦方向に結合します。(省略可能)初期値’outer’結合する際にどの集合を使うかを指定します。’outer’にすると各々のデータで1回でも使われていれば含まれます。’inner’の場合、全部のデータに含まれているものだけが含まれます。(省略可能)初期値None結合の際に使いたいラベルを指定する。これを指定するとjoin引数が無効になります。(省略可能)初期値FalseTrueにすると結合する軸方向のラベルがリセットされ、0から振り直されます。(省略可能)初期値NoneIndexオブジェクトの最も外側の層に追加するラベルを指定します。(省略可能)初期値NoneMultiIndexを構築するために使用する特定の階層(level)を指定します。(省略可能)初期値None階層的なインデックスの各階層のname属性を指定します。(省略可能)初期値None結合する軸に被りの値が含まれていないかどうかを検証します。(省略可能)初期値True結合されていない軸方向のデータをソートするかどうかを指定します。(省略可能)初期値TrueFalseの時、不必要にcopyを作りません。returns:結合されたDataFrameもしくはPanel結合した後にどのような整形にするかを指定する引数が多めとなっています。mergeなどと比較するとかなり意味合いが異なるものもあったりと名称で混乱するケースが多いので1つ1つ抑えていけると良さそうです。結合の基準となるものは縦方向ならインデックスラベル、横方向ならカラムラベルが基本です。実際に使っていきます。シンプルに結合するまずはシンプルに縦方向に結合してみます。C6このように結合されます。列ラベルの値が一致するもの同士が結合されます。列ラベルの値が存在しない所のデータはNaN値で返されます。結合の方向を指定するデフォルトでは縦方向の結合でしたが、今度は横方向で結合してみましょう。axis引数を設定することで変更可能です。D4結合したあとにインデックスを振り直すデータを連結する際新たにインデックスラベルを0から振り直したい場合はignore_index=Trueにするとできます。B5横方向ですと列ラベルが0から振り直されます。D4元のデータの判別にラベルをつけるkeys引数で各々のデータに対してつけるラベルを指定することができます。被りのある列ラベル(インデックス)が存在していたとしても、これで判別可能です。C6横方向でもできます。D4含まれるラベルの範囲を指定するjoin引数で結合した結果に含まれるラベルの範囲を指定します。デフォルトではjoin='outer'になっているため、ラベルがどれか1つでも含まれていれば結合した結果のラベルにも含まれていることになります。join='inner'に変えることで全てのデータに含まれているラベルのみで構成することができます。D2join_axesで具体的な値を指定することができます。join_axes=[df1.index]と指定すればdf1のインデックスのラベルのみを使用することになります。NaN横方向でもできます。D4まとめ今回は柔軟な結合を実現するconcat関数の使い方について解説しました。引数名がややこしいものがありそれらは実際に使って見て感覚を掴む方がイメージがつきやすいと思うので手を動かして覚えていけば良いかと思います。使い方のイメージとしてはjoin関数のaxisが指定できるようになったバージョンという感じで、結合する際に使用する紐付けを個別に設定できないというところに違いがあります。これらを使いこなして、データ結合を楽にできるようになりましょう。documentationTweetDeepAgeではAIに関する厳選した内容を記事にしてお届けします。