PythonでCSVデータを自動更新するスクリプト
1. はじめに
CSVファイルは、データの保存や管理に広く利用されるフォーマットの一つです。しかし、手動で更新するのは面倒な作業です。本記事では、Pythonを使ってCSVデータを自動更新するスクリプトを作成し、定期的にデータを追加・編集する方法を解説します。
2. 環境準備
必要なライブラリ
PythonにはCSVを扱うための標準ライブラリ csv
があります。また、データ操作を効率的に行うために pandas
を使用します。以下のコマンドで pandas
をインストールしてください。
pip install pandas
3. CSVデータを自動更新するスクリプト
ここでは、既存のCSVファイルに新しいデータを追加し、特定の条件に基づいて値を更新するスクリプトを作成します。
3.1. サンプルデータ (data.csv
)
まず、更新対象となるCSVファイル data.csv
を用意します。
id,name,age,score 1,Alice,23,85 2,Bob,30,78 3,Charlie,27,90
3.2. Pythonスクリプト
以下のスクリプトでは、新しいデータを追加し、特定の条件に合致するデータを更新します。
import pandas as pd import os # CSVファイルのパス csv_file = "data.csv" # CSVファイルの読み込み if os.path.exists(csv_file): df = pd.read_csv(csv_file) else: df = pd.DataFrame(columns=["id", "name", "age", "score"]) # 新しいデータの追加 new_data = {"id": 4, "name": "David", "age": 25, "score": 88} df = df.append(new_data, ignore_index=True) # 条件に基づいたデータ更新(例: Aliceのスコアを90に更新) df.loc[df["name"] == "Alice", "score"] = 90 # CSVファイルを上書き保存 df.to_csv(csv_file, index=False) print("CSVデータが更新されました!")
3.3. スクリプトの説明
- CSVファイルの読み込み
pandas.read_csv()
を使用してdata.csv
を読み込みます。ファイルが存在しない場合、新規作成します。 - 新しいデータの追加
df.append()
を使って、新しいデータを追加します。 - 特定の条件でデータを更新
df.loc[]
を使い、name
が"Alice"
のデータのscore
を90
に更新します。 - CSVファイルを保存
to_csv()
を使用して、CSVを上書き保存します。
4. 自動更新のスケジューリング
このスクリプトを定期的に実行するには、タスクスケジューラや cron ジョブを活用します。
Windowsのタスクスケジューラ
- タスクスケジューラを開く(
taskschd.msc
を実行) - 基本タスクの作成 を選択
- スクリプトの実行タイミング を設定(例: 毎日 10:00)
- アクションを選択 →
プログラムの開始
- プログラム/スクリプト に
python
を指定し、スクリプトのパス
にcsv_update.py
を入力 - 完了
Linux/macOSのcronジョブ
以下のコマンドで crontab
を編集し、1時間ごとにスクリプトを実行するように設定します。
crontab -e
以下の行を追加(毎時0分に実行)
0 * * * * /usr/bin/python3 /path/to/csv_update.py
5. まとめ
本記事では、Pythonを使ってCSVデータを自動更新する方法を解説しました。手作業を減らし、データの管理を効率化できます。次のステップとして、データのバリデーションやエラーハンドリングを追加すると、より実用的なスクリプトになります。
次に学ぶべきトピック
これらの技術を習得し、データ管理を自動化していきましょう!