Pandasで複数のファイルを結合する方法【同じフォルダ内のcsvやexcelファイル等】 | ウルトラフリーダム

Pandasで複数のファイルを結合する方法【同じフォルダ内のcsvやexcelファイル等】

Python3
本サイトでは記事内に広告が含まれています。

Jupyter notebook(Python3)を使ってみようを使ってみようと思っても慣れていないうちは、どうしても処理に躓いてしまうものです。

例えば、Pythonのpandas機能にて同じフォルダ内の複数のファイルすべてを結合するためにはどのような処理を行えばいいのか理解していますか。

ここでは、この同じフォルダに含まれる複数のファイルを一括で結合する方法について解説していきます。

スポンサーリンク

Pandasにて複数のファイルを結合する方法(行方向に)【同じフォルダのcsvやexcelファイル】

以下のような同じフォルダ内に複数のcsvやexcelデータがあり、これらを行方向(縦方向)に一括に結合させたいような状況に出会うことがありますよね。

このように

・同じディレクトリ内(フォルダ内)
・同じファイル形式(今回はcsv)

であれば、一括で結合させることができます(例では2つのみですが、3つ以上でも問題ないです)。

この時、フォルダ内のデータを一括で読み込むglob関数を使うといいです。サンプルコードは以下の通りで、定番の処理の一つともいえます。

import pandas as pd
import glob
csv_files = glob.glob(‘*.csv’)

list = []
for file in csv_files:
list.append(pd.read_csv(file))

df = pd.concat(list)
df.to_csv(“total.csv”,index=False)

まず、上のコードを入れるまえにカレントディレクトリが処理するディレクトリになっているか確認するといいです。なっていない場合はディレクトリを移動しておきましょう。
import pandas as pd
import glob
ここで必要なライブラリをインポートしています。今回はpandasとglob。
csv_files = glob.glob(‘*.csv’)
list = []
ここでは、一括でディレクトリ(フォルダ)内のcsvファイルを一括で読み込ませています。
list = []
for file in csv_files:
list.append(pd.read_csv(file))
続いてリストを開き、for分のループ処理によって、すべてのファイルをリストに追加させていきます。
df = pd.concat(list)
df.to_csv(“total.csv”,index=False)
pandasのconcatによって、リスト(つまりフォルダ内のすべてのcsv)を結合させて、最後に出力したら複数のファイルの結合が完了となります。

Pandas(Python)にて複数のファイルを結合する際の注意点(行方向に)【同じフォルダのcsvやexcelファイル】

なお、pandasにて上述のよう縦方向(行方向)に複数のファイルを結合させていく場合、ヘッダー名を統一させておくとうまくいきます。

また列数もそろえておく必要があることに注意しましょう。行数はばらばらで問題ないです。

私の場合、熟練のPython使用者ではないため、これをしておかずになかなか上手く結合できなかった経緯があるため記載させていただきます。

以下のようなイメージでpandasでの複数ファイルの結合が行われていると捉えておきましょう。

 

まとめ Pandasで複数のファイルを結合する方法【同じフォルダ内のcsvやexcelファイル等】

ここでは、jupyternotebook(python3)のpandas機能によって、同じディレクトリ内のcsv等の複数のファイルを結合させる方法について解説しました。

ポイントは

・glob関数
・listに追加
・concatで結合

と理解しておくといいです。

各種対処方法を理解して、pandas(python)の使い方をマスターしていきましょう。

コメント

タイトルとURLをコピーしました