時系列売上データを前処理・集計し、Streamlit上でインタラクティブに可視化するWebダッシュボードです。
Python
# app_dashboard.py
import streamlit as st
import pandas as pd
import numpy as np
st.set_page_config(page_title="売上分析ダッシュボード", layout="wide")
st.title("📈 リアルタイム売上分析ダッシュボード")
# デモデータの生成(第5章)
@st.cache_data
def load_data():
dates = pd.date_range(start="2026-01-01", periods=90, freq="D")
df = pd.DataFrame({
"日付": dates,
"カテゴリ": np.random.choice(["家電", "書籍", "衣料品"], size=90),
"売上額": np.random.randint(10000, 50000, size=90)
})
return df
df = load_data()
# サイドバーフィルター
category_filter = st.sidebar.multiselect("カテゴリ選択", options=df["カテゴリ"].unique(), default=df["カテゴリ"].unique())
filtered_df = df[df["カテゴリ"].isin(category_filter)]
# 指標表示
col1, col2 = st.columns(2)
col1.metric("総売上額", f"¥{filtered_df['売上額'].sum():,}")
col2.metric("平均日次売上", f"¥{int(filtered_df['売上額'].mean()):,}")
# 時系列チャート
st.subheader("日次売上推移")
st.line_chart(filtered_df.groupby("日付")["売上額"].sum())

コメント