Eコマースダッシュボード
概要
Profissão Ciência de Dados コースのアナリティクス深化モジュールの最終プロジェクト。 SQLを使用してEコマースのトランザクションデータと顧客データを統合し、 動的フィルター付きのインタラクティブHTMLダッシュボードで結果を表示する。
ハイライト
- 完全なSQLパイプライン:読み込み、正規化、INNER JOIN、エクスポート
- 自己完結型HTMLダッシュボード — 296件のレコードを埋め込み、サーバー不要
- 性別・州・カテゴリのフィルター付き7種類のインタラクティブ指標
- 生データの正規化(ヨーロッパ形式
72,93→ 小数点72.93)
プロジェクト構造
ecommerce-dashboard/
├── data/
│ ├── raw/ # ソースデータ(トランザクションと顧客)
│ └── processed/ # 統合データセット(JOINの結果)
├── notebooks/
│ └── Profissao Cientista de Dados M26 Projeto.ipynb
├── src/
│ └── dashboard.html # インタラクティブダッシュボード(Chart.js)
├── requirements.txt
└── README.md
技術スタック
| 技術 | バージョン | 役割 |
|---|---|---|
| Python | 3.13 | メイン言語 |
| pandas | latest | データ操作とエクスポート |
SQLite(sqlite3) |
built-in | JOINのためのインメモリDB |
| Jupyter Notebook | latest | インタラクティブなデータパイプライン |
| Chart.js | 4.4.0 | ダッシュボードの可視化 |
データパイプライン
TB_TRANSACOES_PROJETO_ECOMM.csv TB_CLIENTES_PROJETO_ECOMM.csv
│ │
▼ ▼
┌────────────────┐ ┌────────────────────┐
│ Raw読み込み │ │ Raw読み込み │
│ 正規化 │ │ │
│ Price: ,→. │ │ │
└────────┬───────┘ └─────────┬──────────┘
│ │
▼ ▼
┌─────────────────────────────────────────────────┐
│ インメモリSQLite │
│ id_client でINNER JOIN │
└─────────────────────────┬───────────────────────┘
│
▼
dados_ecommerce_final.csv(296件のレコード)
│
▼
dashboard.html(自己完結型)
JOINの選択理由
INNER JOIN を採用した理由は、特定された顧客に紐づくトランザクションの分析が 目的だから。顧客テーブルに対応レコードがないトランザクション(孤立レコード)は 人口統計・地理的メトリクスに価値を持たないため除外 — 結果として296件の統合レコード。
ダッシュボード
src/dashboard.html は自己完結型:296件のレコードがHTML内に直接埋め込まれており、
サーバーやライブデータベース接続は不要。
表示メトリクス:
| メトリクス | タイプ |
|---|---|
| 総売上と平均チケット | KPIカード |
| トランザクション数とユニーク顧客数 | KPIカード |
| 州別地理的分布 | 棒グラフ |
| 性別人口統計プロファイル | ドーナツグラフ |
| 商品カテゴリ別売上 | 横棒グラフ |
| 価格分布 | ヒストグラム(10ビン) |
| トランザクション数上位の職種 | 横棒グラフ |
インタラクティブフィルター: 性別、州、カテゴリ — フィルター選択時にすべての KPIとグラフが更新される。
実行方法
データパイプライン(オプション)
ノートブックを開いてすべてのセルを実行。
data/processed/dados_ecommerce_final.csv が生成される。
ダッシュボード
オプションA — ローカルサーバー(推奨):
http://localhost:8000/src/dashboard.html を開く。
オプションB — ブラウザで直接開く:
src/dashboard.html をダブルクリックまたは File > Open。