目次から探す
複数のCSVファイルを一括で結合する方法
2つのCSVファイルを結合する方法を紹介しましたが、3つ以上の複数のCSVファイルを一括で結合することがよくあります。
この章では、複数のCSVファイルを一括で結合する方法を解説します。
ファイル一覧の取得
まず、結合したいCSVファイルが格納されているフォルダ内のファイル一覧を取得する方法を見ていきましょう。
Pythonのos
ライブラリを使って、フォルダ内のファイル一覧を取得できます。
import os
folder_path = './csv_files/'
csv_files = [f for f in os.listdir(folder_path) if f.endswith('.csv')]
print(csv_files)
このコードでは、 os.listdir()
関数を使って、指定したフォルダ内のファイル一覧を取得しています。
ループを使った一括結合
次に、取得したファイル一覧を使って、ループ処理を行いながらCSVファイルを一括で結合していきます。
ここでは、pandasのconcat
関数を使って結合します。
import pandas as pd
# 空のデータフレームを作成
merged_df = pd.DataFrame()
# ファイル一覧をループして、データフレームに追加
for file in csv_files:
file_path = os.path.join(folder_path, file)
df = pd.read_csv(file_path)
merged_df = pd.concat([merged_df, df], ignore_index=True)
# 結合したデータフレームをCSVファイルに出力
merged_df.to_csv('merged.csv', index=False)
このコードでは、まず空のデータフレームmerged_df
を作成しています。
次に、csv_files
のファイル一覧をループ処理し、各ファイルを読み込んでデータフレームに追加しています。
最後に、結合したデータフレームをCSVファイルに出力しています。
エラー処理と例外処理
ファイルの読み込みや結合処理では、エラーや例外が発生することがあります。
例えば、ファイルが存在しない場合や、データ形式が異なる場合などです。
これらのエラーを適切に処理するために、try
とexcept
を使った例外処理を行いましょう。
merged_df = pd.DataFrame()
for file in csv_files:
try:
file_path = os.path.join(folder_path, file)
df = pd.read_csv(file_path)
merged_df = pd.concat([merged_df, df], ignore_index=True)
except Exception as e:
print(f"Error occurred while processing {file}: {e}")
merged_df.to_csv('merged.csv', index=False)
このコードでは、try
ブロック内でファイルの読み込みと結合処理を行っています。
もしエラーが発生した場合、except
ブロックが実行され、エラーメッセージが表示されます。
これにより、エラーが発生しても処理が停止せず、次のファイルの処理が続行されます。
これらのファイル一覧の取得、ループ処理、エラー処理を組み合わせることで、効率的にCSVファイルを結合することができます。