[pandas] 15. 異なるインデックスをもつDataFrameの連結(concat(), append())

Pandas

はじめに

Pandasでデータ処理をする際、複数のDataFrameを一つに連結する操作はよく使われます。特に異なるインデックスを持つDataFrameを連結する場合、適切なメソッドと引数を選択することが重要です。この記事では、concat()関数とappend()メソッドの使い方、特に異なるインデックスを持つDataFrameの連結における各メソッドの挙動の違いについて解説します。

解説

モジュールのインポート

データの生成

index=[1,2]、columns=[‘a’,’b’,’c’]のDataFrame (df_a)と、index=[3,4]、columns=[‘b’,’c’,’d’]のDataFrame (df_b)を作成します。

.concat()による連結

DataFrame中の要素がない部分はNaNとなります。

sortをTrueにすると、カラム名が昇順にソートされます。

インデックスをソートしたい場合は、sort_indexを用います。

共通するインデクスの部分だけ結合

join=’inner’とすることで、共通するカラム名の部分のみが結合したDataFrameが得られます。

.append()による連結

append()メソッドを使用すると、pd.concat([df_a, df_b])と同じ結果が得られます。ただし、appendの適用順序によって最終的な結果は変化します。

appendでもignore_indexを用いてインデックスを振り直すことができます。

まとめ

異なるインデックスを持つDataFrameの連結には、主にconcat()関数とappend()メソッドが使用できます。concat()関数はより柔軟で、「outer」や「inner」などのjoinパラメータを指定して異なるインデックス間の結合方法を制御できます。append()メソッドはシンプルですが、基本的に「outer」結合と同様の挙動をします。データ分析の目的に応じて適切なメソッドを選択することで、効率的なデータ処理が可能になります。

参考

pandas.concat — pandas 2.3.2 documentation
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.append.html
コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

コメント