Pythonでforループを使ってCSVファイルの各行をイテレートする方法

この記事では、Pythonを使用してCSV(Comma-Separated Values)ファイルの各行をイテレート(繰り返し処理)する方法について解説します。CSVファイルは、データの表形式をテキストとして保存するのに一般的なフォーマットです。Pythonのforループと組み合わせることで、効率よくデータの読み取りや加工ができます。具体的なコード例とその解説、応用例を含めてご紹介します。

目次

基本的なイテレーション方法

PythonでCSVファイルをイテレートする基本的な方法は、`csv` モジュールを使用することです。

csv.readerを使う方法

import csv

# CSVファイルを開く
with open('sample.csv', 'r') as f:
    csv_reader = csv.reader(f)
  
    # 各行をイテレート
    for row in csv_reader:
        print(row)

このコードは、`sample.csv`というCSVファイルを読み込み、その内容を各行ごとに出力します。

応用例

条件を設定して特定の行だけを処理

with open('sample.csv', 'r') as f:
    csv_reader = csv.reader(f)
  
    for row in csv_reader:
        # 1列目が'apple'であれば出力
        if row[0] == 'apple':
            print(row)

各行の特定の列だけを処理

with open('sample.csv', 'r') as f:
    csv_reader = csv.reader(f)
  
    for row in csv_reader:
        # 2列目だけを出力
        print(row[1])

読み込んだデータを加工して新しいCSVファイルに保存

with open('sample.csv', 'r') as f_read, open('output.csv', 'w', newline='') as f_write:
    csv_reader = csv.reader(f_read)
    csv_writer = csv.writer(f_write)
  
    for row in csv_reader:
        # 各要素を2倍にして新しいCSVファイルに書き込み
        new_row = [str(int(x) * 2) for x in row]
        csv_writer.writerow(new_row)

まとめ

PythonでCSVファイルを効率よく処理するには、forループとcsvモジュールを組み合わせる方法が有用です。今回は基本的なイテレーション方法から、条件を設定して特定の行や列を処理する方法、さらには読み込んだデータを加工して新しいCSVファイルに保存する方法までを解説しました。これを機に、Pythonを使ってより高度なデータ処理を行ってみてはいかがでしょうか。

コメント

コメントする

目次