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

2つ以上のCSVファイルを結合して一つCSVファイルにしたい時があります。

そこでこの記事では、Pythonを使って2つ以上のCSVファイルを結合し、1つのCSVファイルにする方法を解説します。

目次から探す

PythonでCSVファイルを操作するための準備

PythonでCSVファイルを操作するためには、まずいくつかの準備が必要です。

この章では、必要なライブラリのインポートとCSVファイルの読み込み方法について説明します。

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

PythonでCSVファイルを操作するためには、csvという標準ライブラリをインポートする必要があります。

また、複数のCSVファイルを結合する際には、osglobというライブラリも使用します。

以下のようにインポートしてください。


import csv
import os

csvライブラリは、CSVファイルの読み書きを行うための機能を提供しています。

osライブラリは、ファイルやディレクトリの操作を行うための機能を提供しています。

CSVファイルの読み込み方法

CSVファイルを読み込むには、csv.reader関数を使用します。

この関数は、CSVファイルを読み込んで、各行をリストとして返すイテレータを生成します。

以下の例では、sample.csvというファイルを読み込んで、各行を表示しています。


with open('sample.csv', 'r', encoding='utf-8') as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        print(row)

with open(...) as csvfile: の部分で、sample.csvファイルを読み込んでいます。

encoding='utf-8'は、ファイルの文字コードがUTF-8であることを指定しています。

csv.reader(csvfile) で、CSVファイルを読み込むイテレータを生成し、for row in reader:で各行を取り出して表示しています。

次の章では、これらの準備を元に、複数のCSVファイルを結合する方法を解説します。

2つのCSVファイルを結合する方法

Pythonで2つのCSVファイルを結合する方法を解説します。

ここでは、pandasというライブラリを使用して、データフレームという形式でCSVファイルを読み込み、結合します。

データフレームの作成

pandasを使ったデータフレームの作成

pandasは、Pythonでデータ解析を行うための強力なライブラリです。

pandasを使ってCSVファイルを読み込むと、データフレームという形式でデータが扱われます。

データフレームは、表形式のデータを効率的に操作できる機能を提供しています。

まずは、pandasをインストールしましょう。

以下のコマンドでインストールできます。

pip install pandas

次に、pandasをインポートし、CSVファイルをデータフレームとして読み込みます。

以下のサンプルコードを参考にしてください。


import pandas as pd
# CSVファイルをデータフレームとして読み込む
df1 = pd.read_csv("file1.csv")
df2 = pd.read_csv("file2.csv")
# データフレームの内容を表示
print(df1)
print(df2)

データフレームの結合

concat関数を使った結合

pandasのconcat関数を使うと、2つのデータフレームを縦方向または横方向に結合することができます。

以下のサンプルコードを参考にしてください。


import pandas as pd
# CSVファイルをデータフレームとして読み込む
df1 = pd.read_csv("file1.csv")
df2 = pd.read_csv("file2.csv")
# データフレームを縦方向に結合
result = pd.concat([df1, df2], axis=0)
# 結果を表示
print(result)
# 結果をCSVファイルに保存
result.to_csv("combined.csv", index=False)

merge関数を使った結合

merge関数を使うと、2つのデータフレームを共通の列を基準にして結合することができます。

以下のサンプルコードを参考にしてください。


import pandas as pd
# CSVファイルをデータフレームとして読み込む
df1 = pd.read_csv("file1.csv")
df2 = pd.read_csv("file2.csv")
# データフレームを共通の列を基準に結合
result = pd.merge(df1, df2, on="共通の列名")
# 結果を表示
print(result)
# 結果をCSVファイルに保存
result.to_csv("combined.csv", index=False)

join関数を使った結合

join関数を使うと、2つのデータフレームをインデックスを基準にして結合することができます。

以下のサンプルコードを参考にしてください。


import pandas as pd
# CSVファイルをデータフレームとして読み込む
df1 = pd.read_csv("file1.csv")
df2 = pd.read_csv("file2.csv")
# データフレームをインデックスを基準に結合
result = df1.join(df2, lsuffix="_left", rsuffix="_right")
# 結果を表示
print(result)
# 結果をCSVファイルに保存
result.to_csv("combined.csv", index=False)

これらの方法を使って、2つ以上のCSVファイルを結合して1つのCSVファイルにすることができます。

適切な結合方法を選択し、データ解析に活用しましょう。

1 2
目次から探す