【Python】既存のCSVに追記する方法

Pythonを使ってCSVファイルの末尾に新しいデータを追加したいけどどうやればいいのかわからない人もいるのではないでしょうか。

そこでこの記事では、CSVファイルを開いて新しいデータを追記する方法について解説していきます。

目次から探す

CSVファイルへの追記方法

CSVファイルへの追記方法はいくつかありますが、ここでは追記モードを使った方法を解説します。

追記モードを使うことで、既存のCSVファイルに新しいデータを簡単に追加することができます。

追記モードを使った方法

追記モードを使った方法は、Pythonの open() 関数を使ってファイルを開く際に、モードを追記モード('a')に指定することで実現できます。

これにより、ファイルの末尾に新しいデータを追加することができます。

追記モードの指定

追記モードを指定するには、 open() 関数の第2引数に'a'を指定します。

以下の例では、sample.csvというファイルを追記モードで開いています。


with open('sample.csv', 'a') as f:
    # ここでCSVファイルへの追記処理を行う

追記するデータの準備

次に、追記するデータを準備します。

ここでは、以下のようなリスト形式のデータを追記することを想定しています。


data = [
    ['山田', '太郎', 25],
    ['鈴木', '花子', 30]
]

CSVファイルへの追記

追記するデータが準備できたら、 csv.writer() 関数を使ってCSVファイルにデータを追記します。

以下の例では、sample.csvファイルにdataの内容を追記しています。


import csv
data = [
    ['山田', '太郎', 25],
    ['鈴木', '花子', 30]
]
with open('sample.csv', 'a', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    for row in data:
        writer.writerow(row)
print("CSVファイルにデータを追記しました。")

このコードを実行すると、sample.csvファイルにdataの内容が追記されます。

newline=''は、改行コードの問題を解決するために指定しています。

このように追記モードを活用することで、CSVファイルを全部読み込んで配列化したあとに、新しいデータの配列を結合してファイルに書き込むといった無駄な処理をする必要がありません。

この方法を使えば、簡単に既存のCSVファイルに新しいデータを追加することができます。

pandasを使った追記方法

pandasはPythonでデータ解析を行うための強力なライブラリです。

pandasを使ってCSVファイルに追記する方法もあります。

ここでは、pandasを使った追記方法について説明します。

データフレームへの追記

まず、pandasを使ってCSVファイルを読み込み、データフレームに変換します。

その後、データフレームに追記したいデータを追加します。

データフレームとは

pandasのデータフレームは、Pythonで表形式のデータを扱うためのデータ形式です。

データフレームは行と列からなるテーブルであり、データの読み込み、変換、操作、分析を容易に行えます。

以下のサンプルコードでは、sample.csvというCSVファイルを読み込み、新しいデータを追加しています。


import pandas as pd
# CSVファイルを読み込み
df = pd.read_csv("sample.csv")
# 追記するデータを作成
new_data = {"column1": "新しいデータ1", "column2": "新しいデータ2", "column3": "新しいデータ3"}
# データフレームに追記
df = df.append(new_data, ignore_index=True)
# 結果を表示
print(df)

このコードでは、 pd.read_csv() 関数を使ってCSVファイルを読み込んでいます。

append() 関数を使ってデータフレームに新しいデータを追加しています。

ignore_index=Trueを指定することで、インデックスが自動で振り直されます。

追記後のデータフレームをCSVファイルに書き込み

追記後のデータフレームをCSVファイルに書き込むには、 to_csv() 関数を使います。

以下のサンプルコードでは、追記後のデータフレームをsample_updated.csvという名前のCSVファイルに書き込んでいます。


# 追記後のデータフレームをCSVファイルに書き込み
df.to_csv("sample_updated.csv", index=False)

to_csv() 関数のindex=Falseオプションを指定することで、インデックスがCSVファイルに書き込まれないようにしています。

以上が、pandasを使ったCSVファイルへの追記方法です。

pandasを使うことで、データの追記や加工が簡単に行えるため、データ解析や前処理において非常に便利です。

目次から探す