app.py
の処理が増えたことでStreamlitの動作が重くなったため、複数ページ構成に変更。pages/01_...
形式で5つのページを作成し、各機能を分散して運用することにした。これにより、ページごとの負荷が軽減され、よりスムーズなデータ表示が可能になった。並行してCSVダウンロード機能の仕上げを進め、フィルター適用後のデータのみをエクスポートできるように対応。また、凡例の順序調整や色のバリエーション問題の改善も行い、可視化の見やすさを向上させた。
コード修正・エラー対応
- Streamlitの動作が重くなったため、複数ページに分割
pages/01_...
形式で5つのページを作成- 各ページに適切な処理を割り当て、負荷を分散
- 凡例の順序を予約数順に変更
ax.legend()
の並び順をsort_values(ascending=False)
で調整
- 都道府県別の色が似すぎる問題を改善
mpl.cm.get_cmap("rainbow", len(pref_counts))
でより多様な色を使用
- X軸ラベルの回転角度調整
plt.xticks(rotation=90)
で視認性を向上
データ処理・分析・可視化の進捗
- 複数ページ構成の実装
app.py
→ 基本画面(ダッシュボードなど)pages/01_予約組数.py
→ 予約組数の可視化pages/02_月次分析.py
→ 月次データの詳細表示pages/03_売上分析.py
→ 売上データの分析ページpages/04_キャンセル分析.py
→ キャンセルデータの分析ページpages/05_エクスポート.py
→ CSVダウンロード機能
- CSVダウンロード機能の仕上げ
- フィルター適用後のデータのみをエクスポート可能に
- 日付フォーマットやカラム順を統一
今後の進め方
- ページごとの最適化
- 各ページのレイアウト調整(タイトルや説明文の追加)
- ユーザーが直感的に操作できるUI改善
- メール解析 → データ抽出モデルの開発
- 予約・キャンセル・変更メールからデータを自動取得する仕組みの設計
- メールのフォーマットごとの解析ルールを整理し、実装に向けた準備
- パフォーマンス改善の検討
- キャッシュ (
@st.cache_data
) の活用 - データ処理の最適化(Pandasの処理改善など)
- キャッシュ (