【Python】2つ以上のcsvを結合して1つのcsvにする方法を解説

目次から探す

複数の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で終わるファイル名だけを抽出しています。

ループを使った一括結合

次に、取得したファイル一覧を使って、ループ処理を行いながら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ファイルに出力しています。

エラー処理と例外処理

ファイルの読み込みや結合処理では、エラーや例外が発生することがあります。

例えば、ファイルが存在しない場合や、データ形式が異なる場合などです。

これらのエラーを適切に処理するために、tryexceptを使った例外処理を行いましょう。


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ファイルを結合することができます。

1 2

この記事のページ一覧
  1. 現在のページ
目次から探す