TechCraft – エンジニアのためのスキルアップメモ

エンジニアのスキルアップを少しでも加速する技術ブログ

PythonでCSVデータを自動更新するスクリプト

PythonCSVデータを自動更新するスクリプト

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. スクリプトの説明

  1. CSVファイルの読み込み
    pandas.read_csv() を使用して data.csv を読み込みます。ファイルが存在しない場合、新規作成します。
  2. 新しいデータの追加
    df.append() を使って、新しいデータを追加します。
  3. 特定の条件でデータを更新
    df.loc[] を使い、name"Alice" のデータの score90 に更新します。
  4. CSVファイルを保存
    to_csv() を使用して、CSVを上書き保存します。

4. 自動更新のスケジューリング

このスクリプトを定期的に実行するには、タスクスケジューラや cron ジョブを活用します。

Windowsのタスクスケジューラ

  1. タスクスケジューラを開くtaskschd.msc を実行)
  2. 基本タスクの作成 を選択
  3. スクリプトの実行タイミング を設定(例: 毎日 10:00)
  4. アクションを選択プログラムの開始
  5. プログラム/スクリプトpython を指定し、スクリプトのパスcsv_update.py を入力
  6. 完了

Linux/macOSのcronジョブ

以下のコマンドで crontab を編集し、1時間ごとにスクリプトを実行するように設定します。

crontab -e

以下の行を追加(毎時0分に実行)

0 * * * * /usr/bin/python3 /path/to/csv_update.py

5. まとめ

本記事では、Pythonを使ってCSVデータを自動更新する方法を解説しました。手作業を減らし、データの管理を効率化できます。次のステップとして、データのバリデーションやエラーハンドリングを追加すると、より実用的なスクリプトになります。

次に学ぶべきトピック

  • エラーハンドリング (try-except の活用)
  • データベースとの連携 (SQLiteMySQL)
  • APIからデータを取得してCSVを更新する (requests ライブラリの活用)

これらの技術を習得し、データ管理を自動化していきましょう!