PythonでCSVファイルを効率的に操作する方法

Pythonの標準ライブラリに含まれるcsvモジュールは、CSV(Comma-Separated Values)ファイルの読み書きを効率的に行うための便利なモジュールです。この記事では、csvモジュールを使ってCSVファイルを操作する基本的な方法から、応用的な使い方までを詳しく解説します。

目次

csvモジュールの基本

csvモジュールはPythonの標準ライブラリに含まれており、インストールする必要はありません。csvファイルの読み書きに関する多くの関数やクラスが用意されています。

CSVファイルの読み込み

基本的なCSVファイルの読み込みは非常に簡単です。以下はその一例です。

import csv

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

CSVファイルへの書き込み

CSVファイルへの書き込みもまた簡単です。以下のコードは、リストのデータをCSVファイルに書き込む例です。

import csv

# 書き込むデータ
data = [
    ['Name', 'Age'],
    ['Alice', 28],
    ['Bob', 22]
]

# CSVファイルに書き込む
with open('output.csv', 'w') as f:
    writer = csv.writer(f)
    writer.writerows(data)

応用例

基本的な使い方をマスターしたら、もう少し高度な操作に挑戦してみましょう。

応用例1: ヘッダーの操作

ヘッダー行がある場合、csv.DictReaderを使用して各行を辞書として読み込むことができます。

with open('example_with_header.csv', 'r') as f:
    reader = csv.DictReader(f)
    for row in reader:
        print(row['Name'], row['Age'])

応用例2: カスタム区切り文字

区切り文字がカンマでない場合、`delimiter`パラメータで指定できます。

with open('example_tab_delimited.csv', 'r') as f:
    reader = csv.reader(f, delimiter='\t')
    for row in reader:
        print(row)

応用例3: ファイルのフィルタリングと保存

既存のCSVファイルから特定の条件に合致する行だけを抽出し、新しいCSVファイルとして保存する例です。

with open('example.csv', 'r') as f_in, open('filtered.csv', 'w') as f_out:
    reader = csv.reader(f_in)
    writer = csv.writer(f_out)
    
    for row in reader:
        if int(row[1]) >= 25:  # 25歳以上の行だけを抽出
            writer.writerow(row)

まとめ

Pythonのcsvモジュールは多機能でありながら簡単に使えるため、データ解析や処理、自動化に非常に便利です。基本的な読み書きから応用例まで、多くのケースで活躍するでしょう。

コメント

コメントする

目次