Squadbase

4. データの準備と基本的なダッシュボード構築

本章では、実際にClaude Codeを使ってダッシュボードを実装していきます。フォークしたリポジトリには、サンプルデータのCSVファイルが用意されているので、これを使ってClaude Codeに具体的な指示を出していきます。

Claude Codeでダッシュボードを実装する

Home.pyのテーブルにチャートを追加してみましょう。分析には、以下の2つのファイルを使用します。

  • orders.csv: 注文データ
  • users.csv: ユーザーデータ

データの内容から分析方針を立てる

最初のステップとして、これらのファイルからClaude Codeに分析方針を立ててもらいます。以下のようにClaude Codeに指示を出します。

@Home.py に分析機能を追加したいです。 @sample_data/users.csv と@sample_data/orders.csv のデータを読み込み分析の方針を立ててください。

Claude Codeがデータの構造を理解し、以下のような分析アイデアを提案してくれます。 (実際の返答は以下の例とは少し異なるかもしれません)

1. 基本統計とKPI
    - 総ユーザー数、注文数、キャンセル率
    - 年齢・性別分布
    - 地理的分布(国・州別)
    - トラフィックソース別分析
2. 注文分析
    - 注文ステータス別の分析
    - 月別・日別の注文トレンド
    - 月別のオーダー数の推移と月別のキャンセル率の分析
3. ユーザー分析
    - ユーザーセグメンテーション(年齢、性別、地域)
    - 新規ユーザー vs リピーター
    - 地理的分布の可視化
4. ビジネスインサイト
    - 顧客生涯価値(推定)
    - 季節性分析
    - 流入元別のコンバージョン率

Claude Codeの提案が、実装したいアイデアの方向性とズレている場合はこの時点でやり取りをして方向性の修正をしましょう。

アイデアの実装方針を策定する

提案されたアイデアの中から、実装してほしいものをClaude Codeに伝えます。例えば、「月別のオーダー数の推移と月別のキャンセル率の分析」を選択した場合、以下のような指示を出します。

選択したアイデア:月別のオーダー数の推移と月別のキャンセル率の分析

この分析を実装するための実装方針を詳細に策定してください。
- 必要なライブラリ
- データの前処理方法
- 可視化の方法
- ダッシュボードの構成
- エラーハンドリング

Claude Codeは、以下のような実装方針を提案してくれます。

**必要なライブラリ**:
- `pandas`: データ操作と分析
- `plotly`: インタラクティブな可視化
- `streamlit`: ダッシュボードUI
- `openpyxl`: Excelファイルサポート

**データの前処理**:
- 日付データの型変換
- 月別集計のための期間データ作成
- 欠損値の処理

**可視化の方法**:
- 月別オーダー数:棒グラフ
- 月別キャンセル率:線グラフ
- データテーブル:インタラクティブ表示

実装方針を基にした開発

Claude Codeに実装方針を渡し、実際にコードを生成してもらいます(もしくは、すでにClaude Codeから実装しますか?と提案されている可能性があるので、その場合はYesを選択し、進めましょう):

以下の機能を追加してください
1. 月別オーダー数の棒グラフ
2. 月別キャンセル率の線グラフ

作成されたコードの動作確認

Claude Codeが生成したコードを実際に動作させて確認します:

streamlit run Home.py

期待通りの動作をしない場合は、具体的な問題点を伝えて修正を求めます:

  • 「月別集計で日付のパースエラーが発生しています」
  • 「グラフの軸ラベルが読みにくいです」
  • 「キャンセル率の計算が正しくないようです」

このように、具体的で明確な指示を出すことで、Claude Codeが適切に対応してくれます。 正しく実装ができていれば、このようなグラフが表示されるはずです。 Home.py

使用しているライブラリの解説

ダッシュボード実装で使用することの多いライブラリについて、ここで取り上げます。 手元で生成されたコードでもおそらくこれから紹介するライブラリは使われているはずです。

データ分析に欠かせないPandas

Pandasは、StreamlitのBIダッシュボード開発において最も重要なライブラリの一つです。Pythonでデータ分析を行う際の事実上の標準ライブラリとして、データの読み込み、処理、変換、集計を効率的に行うことができます。

Pandasの特徴

1. 多様なデータ形式の読み込み

  • CSV、Excel、JSON、SQL、Parquetなど幅広いデータ形式に対応
  • 読み込み時にデータ型の自動推測とカスタマイズが可能
  • 大量データの効率的な読み込みとメモリ管理

2. 強力なデータ操作機能

  • データフレームとシリーズによる直感的なデータ操作
  • SQL風のデータ結合(JOIN)操作
  • 欠損値の処理と補完
  • 重複データの検出と除去

3. 柔軟な集計とグループ化

  • GroupByを使った多次元集計
  • 時系列データの集計とリサンプリング
  • ピボットテーブルの作成
  • 統計計算の豊富な関数群

Pandasを効果的に活用することで、複雑なデータ処理を簡潔なコードで実現し、BIダッシュボードに必要な分析機能を構築できます。

チャートを作成するPlotly

Plotlyは、StreamlitのBIダッシュボード開発において最も重要なライブラリの一つです。インタラクティブで美しいグラフを簡単に作成できるため、データ可視化に適しています。 Pandasでデータの処理をし、Plotlyで可視化をするというようなイメージです。

Plotlyの特徴

1. インタラクティブなグラフ

  • ズーム、パン、ホバーなどの操作が可能
  • ユーザーが直感的にデータを探索できる
  • レスポンシブデザインで様々なデバイスに対応

2. 豊富なグラフタイプ

  • 基本的な線グラフ、棒グラフ、散布図
  • 専門的な統計グラフ(ヒートマップ、箱ひげ図)
  • 地理データ向けのマップ可視化
  • 3Dグラフやアニメーション

3. StreamlitとのシームレスIntegration

  • st.plotly_chart()で簡単にグラフを表示
  • use_container_width=Trueでレスポンシブ対応
  • Streamlitの他のコンポーネントと連携可能

Plotlyを効果的に活用することで、データの洞察を直感的に伝えるBIダッシュボードを構築できます。

振り返り

本章では、基本的なダッシュボード構築に必要なClaude Codeの使い方を学びました。

次章では、エラーが発生した時の対処法を学びます。プログラミング初心者にとって、大きな壁であるエラーコードですが、きちんと意味を理解しClaude Codeの助けを借りれば、最高の学習機会になります。