データアナリストのメモ帳

データアナリストのメモ帳

IT企業で働くデータアナリストのブログ

【Python】フォルダ内のCSVファイルを一括で読み込み縦につなげる方法

Pythonディレクトリ内のCSVファイルを一気に読み込んで、かつそれらを連結させる方法です。

CSVでログが吐かれている場合など、この方法を使えば一発ですね。
Excelで消耗している方は是非トライしてみてください。流れはこんな感じです。

  1. 読み込みたいファイルがあるフォルダを指定
  2. glob.glob("*文字列*")で指定した文字列含むをファイルをリスト化する
  3. pd.read_csv()でCSVファイルを読み込む
  4. pd.concat()でDataFrameを縦に連結する
# import module
import pandas as pd
import glob
import os

# ディレクトリ変更
os.chdir('/Users/username/directory')

# 空のDataFrameを定義
df = pd.DataFrame()

# .csvを含むファイルをpd.read_csv()で読み込む
for i in glob.glob("*.csv*"):
    tmp_df = pd.read_csv(i)
  # DataFrameを連結する
    df = pd.concat([df, tmp_df])

繰り返し文(for文)を使えば指定した文字列を含むファイルをすべて読み込めます。

ただし、列名が揃っていないとうまく結合できないです。
その場合は、以下のようにして列名を変更してください。

# 列名の変更
df = df.rename(columns = {'col1': 'renamed_col1', 'col2': 'renamed_col2'})