Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Python・Pandas】複数のCSVファイルを1つのデータフレームに結合する方法

複数のCSVファイルを1つのデータフレームにまとめて結合(マージ)したい場合、Pythonのglobモジュールが便利です。os.path.join()メソッドで対象ファイルのパスを指定し、concat()関数を使うことで、すべてのCSVファイルを簡単に連結できます。

必要なライブラリのインポート

まず、必要なライブラリをインポートします。ここではpandasライブラリを「pd」という別名で読み込んでいます。

import pandas as pd
import glob
import os

サンプルとなるCSVファイル

今回は、以下の3つのCSVファイルを結合してみましょう。

Sales1.csv

【Python・Pandas】複数のCSVファイルを1つのデータフレームに結合する方法

Sales2.csv

【Python・Pandas】複数のCSVファイルを1つのデータフレームに結合する方法

Sales3.csv

【Python・Pandas】複数のCSVファイルを1つのデータフレームに結合する方法

結合手順

1. ファイルパスの設定

まず、結合したい複数のCSVファイルが保存されている場所へのパスを設定します。ここでは、デスクトップ上にある「sales」で始まるすべてのCSVファイルを対象としています。

files = os.path.join("C:\\Users\\amit_\\Desktop\\", "sales*.csv")

ワイルドカード「*」を使うことで、「sales」から始まるすべてのCSVファイルを一括して指定できるのがポイントです。

2. globでファイル一覧を取得

次に、globを使って、条件に一致したファイルのリストを取得します。

files = glob.glob(files)

コード例全体

以下が実際のコード全文です。

import pandas as pd
import glob
import os

# 複数ファイルを結合するためのパスを設定
files = os.path.join("C:\\Users\\amit_\\Desktop\\", "sales*.csv")

# 条件に一致したファイルのリストを取得
files = glob.glob(files)

print("Resultant CSV after joining all CSV files at a particular location...");

# concatとread_csvを使ってファイルを結合
df = pd.concat(map(pd.read_csv, files), ignore_index=True)
print(df)

ポイントはmap(pd.read_csv, files)の部分です。これにより、取得した各CSVファイルが順番に読み込まれ、それらをpd.concat()で1つのデータフレームに連結しています。また、ignore_index=Trueを指定することで、元のファイルごとの行番号を引き継がず、新しい連番のインデックスが振り直されます。

実行結果

上記のコードを実行すると、以下のような出力が得られます。

Resultant CSV after joining all CSV files at a particular location...
         Car      Place   UnitsSold
0        Audi   Bangalore          80
1     Porsche     Mumbai         110
2  RollsRoyce       Pune         100
3         BMW      Delhi          95
4    Mercedes   Hyderabad          80
5 Lamborghini Chandigarh          80
6       Volvo  Rajasthan         150
7     Hyundai    Manipur         120
8      Toyota        HP          70

このように、3つのCSVファイルの内容が1つのデータフレームにきれいに統合されました。フォルダ内に大量のCSVファイルがある場合でも、同じ方法で一括処理できるので、日々のデータ集計作業などでぜひ活用してください。

  1. 【Python】複数のCSVファイルを1つのPandasデータフレームに結合する方法

    複数のCSVファイルを1つのデータフレームにまとめる基本手法 複数のCSVファイルを1つのPandasデータフレームに結合したい場合、read_csv()とpd.concat()を組み合わせるのが最もシンプルで効率的な方法です。まずは、必要なPandasライブラリをインポートしましょう。ここでは、エイリアスとして「pd」を設定します。 import pandas as pd サンプルとなるCSVファイル 今回は、以下の2つのCSVファイルを例に説明します。 Sales1.csv Sales2.csv どちらのファイルにも「Car(車種)」「Place(地域)」「UnitsSold(販売台数

  2. Pythonでフォルダ内のすべてのExcelファイルを一括マージする方法

    Pythonを使えば、フォルダ内に散らばった複数のExcelファイルをわずか数行のコードで1つのファイルにまとめることができます。本記事では、標準ライブラリのglobモジュールと、データ分析に欠かせないpandasを組み合わせて、Excelファイルを一括結合する手順を詳しく解説します。 前提条件:必要なパッケージのインストール まず、Excelファイルを読み書きするために以下のパッケージが必要です。まだインストールしていない場合は、pipコマンドで導入しておきましょう。 pip install openpyxl xlrd openpyxl:xlsx形式(Excel 2007以降)の読み書きに