pd.concat の引数axisとignore_index
下図を参照してください。

リスト形式で連結対象データフレームを指定する
concat 関数には連結したいデータフレームをリスト形式で渡します。 図のように、df1, df2, df3 の3つのデータフレームを一つに連結したいのであれば
[df1, df2, df3] とします。 pd.concat では一度に複数のデータフレームの結合が可能です。
axis で連結方向:縦横が指定可能
axisは連結方向を示します。デフォルトのaxis=0は縦方向、axis=1は横方向の連結です。
縦方向の連結では、列の内容が同じで行(データを追加したい等)のケースでとても便利です。いわゆる行を増やす縦持ちデータ追加です。
一方、社員や製品の属性情報を追加する等の行ではなく、列を追加する場合は横方向にデータが追加します。 縦方向でも横方向でも結合できるのがconcat関数の大きな特徴です。
ignore_index 連結されたインデックスをそのままか、振り直すかを指定する
ignoreindexにはインデックスを振り直すか、そのまま他を指定します。falseを指定すると、そのままです。trueを指定すると、インデックスを振り直します。デフォルトはfalseでそのままです。
axis=0 (デフォルト)で縦向きに連結する
連結するデータフレーム(df1,df2,df3)です。3つのデータフレームの列は同一です。

連結結果です。ignore_indexの設定でインデックス番号がそのままだったり、振り直されたりしています。

このように、pd.concat のaxis=0 縦向き連結はデータの追加に適しています。
axis=1 横向き連結
df4を作りたいと思います。df3.set_index(「名前」)で名前列をインデックスにします。
df4です。「名前」がインデックスになっていることがわかります。
新しいデータフレームを作成します。df5とします。 df5は名前と役職を持つデータフレームとします。そしてこのデータフレームのインデックスも「名前」に設定します。

join=”outer”は外部結合 、join=”inner”は内部結合
この名前の列を軸(キー)に
df4とdf5の2つのデータフレームを横方向に結合してみます。axis=1 を指定します。
今度は引数joinを指定してすることで連結のスタイルを指定します。join="outer" は外部結合です。
joinを指定しなかった時と同じ結果になります。
join="inner"は内部結合です。お互いに存在するデータのみが結合されます。
outerjoinとinnerjoinの違いは覚えておきたいところです。縦方向でも横方向でも結合できるのがconcat関数の特徴です。

まとめ
- pd.concat は複数の DataFrame を一度に結合できる便利な関数
- axis=0(縦結合) は行の追加に最適で、データ拡張に向いている
- axis=1(横結合) は列の追加に使い、属性情報の付与に便利
- ignore_index でインデックスを保持するか振り直すかを選べる
- join=”outer” / “inner” により、横結合時のデータの残し方を制御できる
- 縦横どちらの結合にも対応できる柔軟性が concat の最大の特徴
参照:pd.concat