Pythonで複数のCSVを一瞬で結合する方法(コピペOK)

Programming

今回はPythonを使って複数のCSVファイルを一つのCSVファイルに結合して新たなCSVファイルに保存する方法を紹介します。今回紹介する方法を使えば、以下のような複数あるCSVファイルを自動で「hoge-ketugou.csv」の一つにまとめる事ができます。

  • hoge01.csv
  • hoge02.csv
  • hoge03.csv
  • hoge04.csv
  • hoge05.csv

面倒臭いデータの管理や、データ入力な仕事はこのように自動化出来ると他の業務に専念する事が出来ます。普段からこのような面倒な作業を手作業でやっている方は是非参考にしてみて下さい。

*今回の方法はJupyterLabと言われるPython実行環境を使用した方法となります。環境構築は各自で行って下さい。

Pythonで複数のCSVを一瞬で結合する方法

結論は以下のコードを実行すれば完了です。

# CSV結合
import pandas as pd
import glob

# パスで指定したファイルの一覧をリスト形式で取得. (ここでは一階層下のtestファイル以下)
csv_files = glob.glob('WEBリンク一覧/*.csv')

#読み込むファイルのリストを表示
for a in csv_files:
    print(a)

#csvファイルの中身を追加していくリストを用意
data_list = []

#読み込むファイルのリストを操作
for file in csv_files:
    data_list.append(pd.read_csv(file))

#リストを全ての行方向に結合
#axis=0:行方向に結合, sort
df = pd.concat(data_list, axis=0, sort=True)

df.to_csv("WEBリンク一覧/結合/20210402.csv",index=False)

解説します。

1~3行目では、pandasとglobを使用するためにインポートしています。
6行目では、「csv_files」との変数にglob関数を使用して「WEBリンク一覧」とのファイルの中に入っている「.csv」の拡張子が付くもの全てを格納しています。
9行目では「csv_files」の中身を確認しています。今回の場合は以下のような5つのCSVファイルが見つかりました。

13行目では、「data_list」の変数を用意して格納場所を作成しています。
16行目では、「csv_files」を「data_list」に追加しています。
21行目では、16行目で出来たリストを結合して、データフレームに格納しています。
23行目では、21行目のdfをcsvにして保存しています。

これで完了です。先程の5つのファイルが「20210402.csv」との名前で保存されます。


以上が「Pythonで複数のCSVを一瞬で結合する方法」でした。

三浦圭人

最後まで閲覧頂きありがとうございます。
Twitterでは更に細かくWEBリテラシーのネタを発信しています。是非フォローお願い致します。感想/ご意見頂けたら喜びます✨

2021年4月3日ProgrammingPython,WEB

Posted by KT