7-11. pandas & Streamlit によるリアルタイム売上分析ダッシュボード

時系列売上データを前処理・集計し、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())

コメント

タイトルとURLをコピーしました