[pandas] 14. Series, DataFrameの連結(.concat())

Pandas

はじめに

pandasでは、データの連結を行うためのメソッドとして.concat()が提供されています。これは複数のSeries、DataFrameを連結する際に使用できる非常に便利な機能です。本記事では、.concat()の基本的な使い方からさまざまなパラメータの活用法まで詳しく解説していきます。

解説

pandasのSeriesやDataFrameは複数のデータを連結して一つにまとめることができます。この記事では、データの連結方向の指定方法や、連結時のインデックス処理について説明します。

モジュールのインポート

Seriesの連結

インデックスが[1,2,3]のSeriesとインデックスが[4,5,6]のSeriesを作成し、pd.concat([ser1, ser2])で連結します。これにより、ser1とser2が一つのSeriesになります。この操作では、各Seriesの元のインデックスがそのまま保持されます。

DataFrameの場合

データの生成

DataFrameの連結

pd.concat([df_0, df_1, df_2])を使用してデータフレームを連結できます。デフォルトでは axis=0 が設定されているため、行方向(縦方向)に連結されます。

行方向にDataFrameを連結

行方向に連結したい場合は、axis=1とします。

インデックスの取扱について

インデックスに重複があるときにエラーをだすverify_integrity

verify_integrity=Trueを設定すると、インデクス名が重複している場合に

#ValueError: Indexes have overlapping values: Int64Index([0, 1], dtype=’int64′)

というエラーが返されます。デフォルトではFalse(verify_integrity=False)なので、重複するインデックスはそのまま保持されます。

インデックスを無視して振り直す

ignore_index=Trueを設定すると、既存のインデックスを無視して、新しく連番のインデックスを振り直したDataFrameが作成されます。

インデックスをマルチインデックス化

keyとnamesを設定することでインデックスをマルチインデックス化することができます。

まとめ

pandas.concat()を使用すれば、複数のSeries、DataFrameを簡単に連結できます。連結方向の指定(axis)、インデックスの初期化(ignore_index)、共通列のみを残す(join)など、様々なパラメータを活用することで柔軟なデータ連結が可能です。データ分析の過程で複数のデータセットを結合する際に非常に有用なメソッドです。

参考

pandas.concat — pandas 2.3.2 documentation

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

コメント