A
AIエージェントの仕組み
ch9-s5 · Data Analysis

ケース5: データ分析の対話的ワークフロー

約 16 分

09-05. ケース 5: データ分析の対話的ワークフロー

シチュエーション

手元の CSV / DB に対して、毎回: - import 一通り書く - データを読み込む - 集計クエリを書く - グラフを書く - 異常値を探す

を Jupyter で繰り返している。毎回 30 分〜1 時間 かかり、本来の「分析の意思決定」より 準備に時間を取られている

Before (Claude Code を使わない場合)

# 毎回 Jupyter で
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
df = pd.read_csv("./data/sales.csv")
df["date"] = pd.to_datetime(df["date"])
monthly = df.groupby(df["date"].dt.to_period("M"))["amount"].sum()
plt.figure(figsize=(10,4))
monthly.plot()
plt.title("Monthly Sales")
...

→ パターン化できる作業を毎回手書き、準備 30 分 / 分析 30 分 / 結果整理 30 分

After (Claude Code を使う場合)

$ cd ~/projects/data-analysis
$ claude

> ./data/sales.csv の月次推移を可視化して、外れ値があれば指摘して

→ Claude が: 1. CSV をスキャン (head 数行、dtype 推定) 2. pandas + matplotlib コードを生成 3. run_python ツールで実行 → グラフ画像 + 集計結果 4. 外れ値を統計的に検出して指摘

5 分で結果

必要な道具立て

機能 何のために
プロジェクト CLAUDE.md データの場所・命名規約・よく使うクエリパターン
Skill: data-analysis 分析手順(EDA → 可視化 → 異常検知)を強制
Hook: PreToolUse (Bash) pip install で重いライブラリを誤って入れるのを防ぐ
Python 環境 (uv/poetry/venv) 自動で activate される設定

CLAUDE.md 例

# データ分析プロジェクト

## データの場所
- `./data/raw/` — 元データ (変更禁止)
- `./data/processed/` — 前処理済み
- `./data/output/` — 分析結果(グラフ・レポート)

## よく使うライブラリ
- pandas, numpy, matplotlib, seaborn, scikit-learn, scipy
- どれも uv 環境にインストール済み(.venv 自動 activate)

## 分析の流儀
1. **EDA は必ず最初**: shape, dtype, null 数, describe を確認
2. **可視化は必ず保存**: `data/output/<日付>-<内容>.png`
3. **異常値検出**: IQR 法 + Z-score の両方
4. **結論は 3 行**: ビジネスインパクトを優先

## 避けたいこと
- `display(df)` で巨大データを画面に出す
- グラフを表示するだけで保存しない
- 統計的根拠なしの "外れ値っぽい" 判定

Skill .claude/skills/data-analysis/SKILL.md

---
name: data-analysis
description: CSV / Parquet / DB データを集計・可視化・異常検知するタスクで使う
---

# 分析の標準手順

## 1. EDA (Exploratory Data Analysis)
```python
df.shape          # 行列数
df.dtypes         # 型
df.isnull().sum() # 欠損
df.describe()     # 数値列の統計
df.head(3)        # サンプル

↑ 必ず最初に実行。結果を回答に含める。

2. 可視化

すべて data/output/<YYYY-MM-DD>-<内容>.png に保存。

3. 異常検知

4. 結論

## ワークフロー (例)

$ claude

data/raw/sales.csv を読んで、月次推移と異常値を出して

Claude (data-analysis Skill 発火): 1. EDA > Read data/raw/sales.csv (head 5 行) > Bash: python -c "import pandas; df=pandas.read_csv('data/raw/sales.csv'); print(df.shape, df.dtypes, df.isnull().sum())" > 結果: shape=(1247, 6), 欠損 amount 列に 3 件 2. 可視化 > Edit: data/processed/sales_monthly.py を作成 (集計コード) > Bash: python data/processed/sales_monthly.py > Read: data/output/2026-05-12-monthly-sales.png (確認) 3. 異常検知 > 月次合計に IQR 法を適用 > 2026-02 の売上が +2.3 IQR で外れ値検出 4. 結論 > Markdown レポートとして data/output/2026-05-12-report.md に保存 > 「① 月次は 2026-Q1 で +18%、② 2026-02 が異常 (システム障害復旧の反動か?)、③ 提案: 翌月の予算下方修正」 ```

注意点・限界

応用

このケース後にできるようになること

関連

📝 理解度クイズ (3 問) 💡 ログインすると進捗が保存されます

💬 このサブステップの Q&A

まだ質問はありません。最初の質問を投稿してみましょう。

質問の投稿にはログインが必要です。