PythonでCSVファイルのデータを加工して新しいCSVファイルとして出力する方法

この記事では、Pythonを使用してCSVファイルのデータを加工し、新しいCSVファイルとして出力する方法について解説します。具体的なコード例やその詳細な解説、さらに応用例を含めて解説していきます。

目次

はじめに

CSVファイルは、多くのシステムで広く利用されています。CSVファイルを加工するスキルは、データ分析から自動化まで多岐にわたる用途で役立ちます。Pythonはそのようなファイル操作を効率よく行うためのツールとして非常に優れています。

基本的なCSVファイルの加工方法

PythonでCSVファイルを読み込む

まずは、Pythonの`csv`モジュールを使用してCSVファイルを読み込む基本的な方法から始めましょう。

import csv

# CSVファイルを開く
with open('input.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

このコードは、`input.csv`という名前のCSVファイルを読み込み、各行を表示します。

CSVデータの加工

次に、読み込んだCSVデータに何らかの加工を施しましょう。例として、各行の第一列の値を2倍にします。

import csv

# CSVファイルを開く
with open('input.csv', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        row[0] = int(row[0]) * 2  # 第一列の値を2倍に
        print(row)

新しいCSVファイルとして出力

加工したデータを新しいCSVファイルとして保存する方法を見てみましょう。

import csv

# 新しいCSVファイルとして出力
with open('output.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    with open('input.csv', 'r') as rf:
        reader = csv.reader(rf)
        for row in reader:
            row[0] = int(row[0]) * 2  # 第一列の値を2倍に
            writer.writerow(row)

応用例

例1: 条件に基づいて行をフィルタリング

第一列の値が10より大きい行だけを新しいCSVファイルとして保存する例です。

with open('filtered_output.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    with open('input.csv', 'r') as rf:
        reader = csv.reader(rf)
        for row in reader:
            if int(row[0]) > 10:
                writer.writerow(row)

例2: 列を追加

各行に新しい列を追加して、その値を設定する例です。

with open('added_column_output.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    with open('input.csv', 'r') as rf:
        reader = csv.reader(rf)
        for row in reader:
            row.append('new_value')  # 新しい列を追加
            writer.writerow(row)

例3: 複数のCSVファイルを結合

複数のCSVファイルを一つに結合する例です。

with open('merged_output.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    for filename in ['input1.csv', 'input2.csv']:
        with open(filename, 'r') as rf:
            reader = csv.reader(rf)
            for row in reader:
                writer.writerow(row)

まとめ

この記事では、Pythonを使用してCSVファイルのデータを加工し、新しいCSVファイルとして出力する方法について解説しました。基本的な操作から応用例までを網羅していますので、ぜひ参考にしてください。

コメント

コメントする

目次