【Python】csvで列を指定して書き込みを行う方法を解説

CSVファイルはデータのやり取りや保存に広く使われているフォーマットです。

PythonでCSVファイルを扱う方法はいくつかありますが、今回は特定の列にデータを書き込む方法について詳しく解説していきます。

目次から探す

CSVファイルへの列指定書き込み

CSVファイルへの列指定書き込みは、特定の列にデータを追加したい場合に便利です。

Pythonでは、csv.writerpandasといったライブラリを使って、簡単に列指定書き込みを行うことができます。

今回は一番シンプルなcsv.writerを使った方法を解説していきます。

特定の列にデータを書き込むには、Pythonのcsvモジュールを使用することができます。

以下のサンプルコードでは、CSVファイルからデータを読み取り、特定の列に新しいデータを書き込む方法を示しています。

import csv

def write_to_column(csv_file, column_name, data):
    # CSVファイルを読み取りモードで開く
    with open(csv_file, 'r') as file:
        # CSVデータを読み込む
        reader = csv.DictReader(file)
        rows = list(reader)
        
        # 列名が含まれているかチェック
        if column_name not in reader.fieldnames:
            print(f"Error: Column '{column_name}' does not exist.")
            return
        
        # データを特定の列に書き込む
        for row in rows:
            row[column_name] = data
        
    # CSVファイルを書き込みモードで開く
    with open(csv_file, 'w', newline='') as file:
        # CSVデータを書き込む
        writer = csv.DictWriter(file, fieldnames=reader.fieldnames)
        writer.writeheader()
        writer.writerows(rows)

# サンプルのCSVファイル名
csv_file = 'sample.csv'

# 書き込むデータ
new_data = 'New Value'

# 列名
column = 'Column1'

# 特定の列にデータを書き込む
write_to_column(csv_file, column, new_data)

上記のコードでは、write_to_columnという関数を定義しています。この関数は、CSVファイル名 (csv_file)、書き込むデータ (data)、そして特定の列名 (column_name) を引数として受け取ります。

関数内部では、まずCSVファイルを読み取りモードで開き、csv.DictReaderを使用してデータを読み込みます。次に、指定された列名が存在するかどうかを確認します。もし列名が存在しない場合、エラーメッセージを表示して処理を終了します。

データが存在する列に対して、新しいデータを書き込みます。各行の対応する列の値を新しいデータで更新します。

最後に、CSVファイルを書き込みモードで開き、csv.DictWriterを使用してデータを書き込みます。writer.writeheader()を呼び出すことで、列名を書き込みます。そして、writer.writerows(rows)を使用して行データを書き込みます。

上記のコードでは、sample.csvという名前のサンプルのCSVファイルを使用しています。必要に応じて、実際に動作させるために、以下の手順に従ってサンプルコードを実行してみてください。

  1. テキストエディタを開き、新しいファイルを作成します。
  2. 上記のサンプルコードをコピーし、新しいファイルに貼り付けます。
  3. サンプルのCSVファイルを用意します。任意の名前で新しいCSVファイルを作成し、いくつかの行と列を追加します。例えば、次のような内容になるようにしてください。
Column1,Column2,Column3
Value1,Value2,Value3
Value4,Value5,Value6
  1. コード内のcsv_file変数に、作成したCSVファイルのパスを指定します。例えば、csv_file = 'path/to/your/sample.csv'とします。
  2. コード内のnew_data変数に、書き込む新しいデータを指定します。例えば、new_data = 'New Value'とします。
  3. コード内のcolumn変数に、データを書き込む列名を指定します。例えば、column = 'Column1'とします。
  4. ファイルを保存します。例えば、write_to_column.pyという名前で保存します。
  5. コマンドライン(ターミナル)を開き、Pythonスクリプトを実行します。以下のコマンドを入力します。
python write_to_column.py
  1. 実行すると、指定したCSVファイルが更新され、指定した列に新しいデータが書き込まれます。
  2. CSVファイルを開き、一部の列ののデータだけ書き換えられたかどうか結果を確認してみてください。

上記の手順に従って実行することで、特定の列にデータを書き込むことができます。

目次から探す