PythonでCSVファイルを編集・更新する完全ガイド

この記事では、Pythonを用いたCSVファイルのデータの更新・編集について詳しく説明します。具体的なコード例とその解説、さらに応用例までを網羅しています。

目次

はじめに

CSV(Comma-Separated Values)ファイルは、多くのアプリケーションでデータの入出力に使われます。PythonもCSVファイルの処理に優れた機能を提供しています。この記事では、CSVファイルのデータを編集・更新する基本的な方法をPythonでいかに実現するかを学びます。

必要なライブラリ

Python標準ライブラリの`csv`モジュールを使います。特別なインストールは必要ありません。

csvモジュールのインポート

import csv

この一行で、PythonでCSVファイルを操作するための基本的な関数やクラスが使用可能になります。

CSVファイルの読み込み

基本的な読み込み方

with open('sample.csv', mode='r') as file:
    csv_reader = csv.reader(file)
    for row in csv_reader:
        print(row)

このコードでは、`sample.csv`というCSVファイルを読み込んで、各行を表示しています。`with open`文を用いることで、ファイルのクローズを自動で行っています。

CSVファイルの書き込み

基本的な書き込み方

with open('sample.csv', mode='w') as file:
    csv_writer = csv.writer(file)
    csv_writer.writerow(['Name', 'Age', 'Occupation'])
    csv_writer.writerow(['John', 28, 'Engineer'])

`csv.writer`オブジェクトの`writerow`メソッドを使い、一行ずつCSVファイルに書き込んでいます。

CSVファイルの更新・編集

特定の行を編集する

rows = []
# CSVファイルの読み込みと編集内容の保持
with open('sample.csv', mode='r') as file:
    csv_reader = csv.reader(file)
    for row in csv_reader:
        if row[0] == 'John':
            row[1] = 29
        rows.append(row)

# 編集内容でCSVファイルを更新
with open('sample.csv', mode='w') as file:
    csv_writer = csv.writer(file)
    csv_writer.writerows(rows)

このコードでは、「Name」が`John`の行の「Age」を29に更新しています。

応用例

応用例1: 特定の条件でデータをフィルタリングして新しいCSVを作成

with open('sample.csv', mode='r') as infile, open('filtered.csv', mode='w') as outfile:
    csv_reader = csv.reader(infile)
    csv_writer = csv.writer(outfile)
    for row in csv_reader:
        if int(row[1]) >= 30:
            csv_writer.writerow(row)

このコードは、年齢(`Age`)が30以上のデータのみを新しいCSVファイル(`filtered.csv`)に出力します。

応用例2: カラムを追加する

with open('sample.csv', mode='r') as infile, open('expanded.csv', mode='w') as outfile:
    csv_reader = csv.reader(infile)
    csv_writer = csv.writer(outfile)
    for row in csv_reader:
        row.append('NewColumnData')
        csv_writer.writerow(row)

この例では、既存のすべての行に新しいカラム(`NewColumnData`)を追加しています。

応用例3: CSVファイルの内容をソートする

import operator
with open('sample.csv', mode='r') as infile, open('sorted.csv', mode='w') as outfile:
    csv_reader = csv.reader(infile)
    csv_writer = csv.writer(outfile)
    sorted_list = sorted(csv_reader, key=operator.itemgetter(1))
    for row in sorted_list:
        csv_writer.writerow

(row)

この例では、CSVファイルの内容を年齢(`Age`)でソートして新しいCSVファイル(`sorted.csv`)に出力しています。

まとめ

Pythonの`csv`モジュールを使うと、CSVファイルの読み書きや編集が非常に簡単になります。この記事で紹介した方法を基に、更に複雑なデータ操作にも対応できるようになるでしょう。

コメント

コメントする

目次