本文へ移動
cccskills
無料GitHub で公開

data-analyst

BigQuery/Snowflake接続、EDA、可視化、Marimoノートブック作成を行うサブエージェント。データ分析関連の4つのルール(data_analysis, visualization, notebook, marimo_variable_naming)を統合。

「データ分析して」「BigQueryに接続」「EDAを実行」「Marimoで分析」等のリクエストで発動。

インストール方法を見る

含まれるファイル(4)

  • SKILL.md9.1 KB
  • agents/openai.yaml177 B
  • SKILL.en.md8.7 KB
  • SKILL.es.md9.8 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Data Analyst サブエージェント

BigQuery/Snowflake接続、EDA、可視化、Marimoノートブック作成を専用コンテキストで実行するサブエージェント。

Draft: Marimo変数の補助Lintスクリプトは未収録。変数名の重複は手動で確認する。

目的

データ分析処理をメインエージェントのコンテキストから分離し:

  • 4つの関連ルールをサブエージェント内に統合(約1500-3000トークン削減)
  • 分析結果のサマリーのみを返却
  • GCP認証フローの統合

統合ルール

このサブエージェントは以下の4つのルールの内容を内包しています:

  1. data_analysis.mdc - データ分析の基本原則
  2. visualization.mdc - 可視化の品質基準
  3. notebook.mdc - Marimo Notebook利用ルール
  4. marimo_variable_naming.mdc - Marimo変数命名ルール

Part 1: データ分析の基本原則

分析プロセス

  1. 目的の明確化: 分析開始前に目的・ゴール・仮説を記述
  2. データ品質の確保: 完全性・正確性・一貫性を確認、欠損・異常値・重複の処理方針を説明
  3. バイアスと因果: 主観的バイアスを排除、相関と因果を混同しない
  4. 分析対象の理解: カラム意味・単位・収集元・更新頻度を把握

ファイル整理

data/
├── raw/           # 元データ(上書き禁止)
├── intermediate/  # 中間処理データ
├── feature/       # 特徴量データ
└── output/        # 最終出力

命名規則: {source}__{target}__{granularity}__{date}.parquet 例: bq__sales__daily__2025-03-01.parquet

EDA(探索的データ分析)

  • YData Profiling (ydata-profiling) やAutoViz (autoviz) を活用
  • Marimoでインタラクティブに探索
  • 1つのグラフに情報を詰め込みすぎない

Part 2: 可視化の品質基準

必須ルール

ルール説明
意味のあるラベルindex番号使用禁止、ユーザー名/日付/カテゴリ名を使用
適切なグラフタイプ棒グラフ(比較)、折れ線(時系列)、ヒートマップ(2次元)
日本語ラベル専門知識なしで理解できるように
数値ラベル表示棒の上に「1,791件」等を表示
タイトル/軸ラベル/凡例必須
高解像度300 DPI以上

グラフタイプ選択

データ推奨グラフ
カテゴリ比較棒グラフ
時系列折れ線グラフ
2次元データヒートマップ
内訳積み上げグラフ
長いラベル横棒グラフ

matplotlib設定

import matplotlib
matplotlib.use('Agg')  # GUIなしで動作
import matplotlib.pyplot as plt

# 日本語フォント設定
plt.rcParams['font.family'] = 'Hiragino Sans'

Part 3: Marimo Notebook ルール

基本ルール

  1. Marimoを使用: Jupyter Notebookは使用しない
  2. 分析目的を明記: 最初のセルに記載
  3. 仮想環境の使用: uv を使用
  4. エラー対応: 原因と再発防止策をNotebookに追記

進捗表示(tqdm)

from tqdm import tqdm

# 時間のかかる処理には必ず進捗表示
for item in tqdm(items, desc="処理中", unit="item"):
    process(item)
    time.sleep(0.5)

BigQuery重複除去(必須)

WITH deduplicated AS (
    SELECT
        *,
        ROW_NUMBER() OVER (PARTITION BY post.xPostId ORDER BY _PARTITIONTIME DESC) as row_num
    FROM `project.dataset.table`
    WHERE _PARTITIONTIME IS NOT NULL
)
SELECT * FROM deduplicated WHERE row_num = 1

Part 4: Marimo変数命名ルール

🚨 重要な制約

Marimoでは変数の再定義が禁止。異なるセル間で同じ変数名を使用するとエラー。

命名パターン

セル固有の接尾辞

セルの目的推奨接尾辞例
データ取得_fetch, _loaddf_fetch, result_load
前処理_prep, _cleandata_prep, values_clean
統計分析_stat, _calcmean_stat, corr_calc
可視化(静的)_static, _plotfig_static, ax_plot
可視化(動的)_dyn, _internet_dyn, chart_inter
モデル学習_train, _fitmodel_train, scaler_fit
評価_eval, _testscore_eval, pred_test

正しい例

# ✅ 良い例(セルごとに固有の接尾辞)
@app.cell
def _(data):
    fig_overview, axes_overview = plt.subplots(2, 2)
    for idx_ov, ax_ov in enumerate(axes_overview.flatten()):
        ax_ov.plot(data[idx_ov])
    return fig_overview, axes_overview

@app.cell
def _(data):
    fig_detail, axes_detail = plt.subplots(3, 3)
    return fig_detail, axes_detail

変数の重複確認

編集前後に各セルのトップレベル変数名を見直し、同じ名前を複数セルで再定義していないことを確認する。重複する場合は、セルの役割が分かる固有の接尾辞を付ける。


GCP認証

作業開始前の確認

# 設定プロファイル一覧
gcloud config configurations list

# プロファイル切り替え
gcloud config configurations activate <profile_name>

# 認証
gcloud auth application-default login

利用可能なプロファイル

プロファイル名プロジェクトID用途
default-デフォルト環境
my-profilemy-gcp-project本番データ分析
my-devmy-dev-project開発分析

サブエージェント呼び出しパターン

メインエージェントは以下のパターンでこのサブエージェントを呼び出す:

Task(
    subagent_type="generalPurpose",
    model="fast",
    description="Data analysis",
    prompt="""
    このスキルを読んで実行してください: skills/data-analyst/SKILL.md
    
    タスク: {ユーザーの指示}
    データソース: {BigQuery / Snowflake / CSV等}
    分析目的: {EDA / 可視化 / レポート作成等}
    
    分析結果のサマリーを返却してください。
    """
)

返却フォーマット

status: success
analysis_type: EDA
data_source: BigQuery (my-dev-project)
summary:
  total_rows: 150000
  columns: 25
  date_range: "2025-01-01 ~ 2025-12-31"
  key_findings:
    - "日別投稿数は平均1,200件/日"
    - "ピーク時間帯は12:00-13:00"
    - "週末は平日比30%減少"
visualizations:
  - path: reports/daily_posts.png
    description: "日別投稿数推移"
  - path: reports/hourly_heatmap.png
    description: "時間帯別ヒートマップ"
notebook:
  path: notebooks/eda_analysis.py
  status: "作成完了"

依存関係

marimo>=0.5.0
pandas>=2.0.0
plotly>=5.0.0
matplotlib>=3.7.0
google-cloud-bigquery>=3.0.0
ydata-profiling>=4.0.0
tqdm>=4.65.0

ユースケース

  1. BigQuery EDA: テーブル構造把握、基本統計、分布確認
  2. 時系列分析: トレンド、季節性、異常値検出
  3. コホート分析: ユーザーセグメント、リテンション
  4. 可視化レポート: ダッシュボード、プレゼン資料
  5. Marimoノートブック作成: インタラクティブ分析環境構築

Troubleshooting

エラー解決方法
GCP認証エラーgcloud auth application-default login を実行
BigQueryテーブルが見つからないgcloud config configurations list でプロファイルを確認し適切なものに切り替え
Marimo変数再定義エラー各セルのトップレベル変数を見直し、重複名に固有の接尾辞を付ける

Success Criteria

  • 分析結果のサマリー(YAML形式)が返却されている
  • 可視化グラフに日本語ラベル・タイトル・凡例が含まれている
  • 出力ファイルが data/output/ または reports/ に保存されている

Overview

BigQuery/Snowflake接続、EDA(探索的データ分析)、可視化、Marimoノートブック作成を専用コンテキストで実行するサブエージェントスキルです。データ分析・可視化・Notebook作成の4つのルールを統合し、分析結果のサマリーのみを返却します。

Usage

上記「サブエージェント呼び出しパターン」および「GCP認証」セクションを参照。基本的な実行例:

# Marimo ノートブックで分析を開始
marimo edit notebooks/eda_analysis.py

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

ab-test-setup

無料日本語概要

A/Bテストや実験の設計・実装を支援するスキル。 「A/Bテストを設計して」「スプリットテストしたい」「仮説を立ててテストしたい」「バリアントを比較」等のリクエストで発動。 トラッキング実装は analytics-tracking を参照。

minicoohei/ai-agent-camp3472026年10月7日 更新

agent-designer

無料日本語概要

マルチエージェントシステムのアーキテクチャ設計ツールキット。 「エージェントを設計して」「マルチエージェント構成」「エージェントのアーキテクチャ」「オーケストレーション設計」等のリクエストで発動。

minicoohei/ai-agent-camp3472026年10月7日 更新

aiagent-check-setup

無料日本語概要

ai-agent-campのローカル環境セットアップを確認するスキル。 「セットアップ確認」「環境チェック」「初期設定できてる?」「インストール確認」「依存関係チェック」等のリクエストで発動。

minicoohei/ai-agent-camp3472026年10月7日 更新

aiagent-command-router

無料日本語概要

ai-agent-campのスラッシュコマンドをCodexでルーティングするスキル。 「/start-0-1を実行」「スラッシュコマンドを使いたい」「コマンドルーティング」「Cursorのコマンドを使いたい」等のリクエストで発動。

minicoohei/ai-agent-camp3472026年10月7日 更新

aiagent-env-manager

無料日本語概要

ai-agent-campの環境変数・認証情報を安全に管理するスキル。 「APIキーを設定」「.envを管理」「環境変数の設定」「credential managerを使いたい」「秘密情報の管理」等のリクエストで発動。

minicoohei/ai-agent-camp3472026年10月7日 更新

aiagent-guide

無料日本語概要

ai-agent-campリポジトリの案内・オリエンテーションスキル。 「リポジトリ案内」「次のレッスンは?」「どこから始める」「ツールの違い」「aiagent概要」等のリクエストで発動。

minicoohei/ai-agent-camp3472026年10月7日 更新

minicoohei のスキルをすべて見る

このスキルの問題を報告する