You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建支持维度下钻的Streamlit合规率透视表应用

实现带维度下钻的合规率Streamlit应用

需求说明

给定如下合规数据表:

docid salesrep customer warehouse saledate   deliverydate compliance
doc1  abc      cus1     wh1       11/1/2024  11/10/2024   0
doc2  abc      cus2     wh1       11/4/2024  11/20/2024   1

其中compliance是二元变量(1代表100%合规,0代表0%合规)。需开发Streamlit应用,默认展示仓库级合规率百分比,支持用户通过销售代表、客户维度切换下钻,查看对应层级的合规率,而非展示各层级独立的透视表。

实现代码

import streamlit as st
import pandas as pd

# 初始化数据(实际场景可替换为文件读取/数据库查询)
data = pd.DataFrame({
    "docid": ["doc1", "doc2"],
    "salesrep": ["abc", "abc"],
    "customer": ["cus1", "cus2"],
    "warehouse": ["wh1", "wh1"],
    "saledate": ["11/1/2024", "11/4/2024"],
    "deliverydate": ["11/10/2024", "11/20/2024"],
    "compliance": [0, 1]
})

# 设置页面标题
st.title("合规率层级下钻分析")

# 定义下钻层级选项,默认选中仓库级
drill_levels = ["仓库", "销售代表", "客户"]
selected_level = st.selectbox("选择下钻层级", drill_levels, index=0)

# 映射层级到数据表字段
level_mapping = {
    "仓库": "warehouse",
    "销售代表": "salesrep",
    "客户": "customer"
}
group_col = level_mapping[selected_level]

# 计算各层级合规率:合规订单数/总订单数 * 100
compliance_rate = data.groupby(group_col).agg(
    总订单数=("docid", "count"),
    合规订单数=("compliance", "sum")
).reset_index()
compliance_rate["合规率(%)"] = round(compliance_rate["合规订单数"] / compliance_rate["总订单数"] * 100, 2)

# 展示结果表格
st.subheader(f"{selected_level}级合规率统计")
st.dataframe(compliance_rate[[group_col, "总订单数", "合规订单数", "合规率(%)"]], use_container_width=True)

# 可选:展示选中层级的明细数据(按需开启)
if st.checkbox(f"查看{selected_level}级明细数据"):
    st.subheader(f"{selected_level}级明细")
    st.dataframe(data, use_container_width=True)

代码说明

  • 数据初始化:这里直接用DataFrame构造测试数据,实际使用时可替换为pd.read_csv()读取本地文件,或通过数据库连接获取数据。
  • 下钻层级选择:用st.selectbox提供层级切换入口,默认选中仓库级,用户可一键切换到销售代表或客户维度。
  • 合规率计算:通过groupby按选中维度分组,统计总订单数与合规订单数,再计算百分比并保留两位小数,确保数据可读性。
  • 结果展示:优先展示汇总统计表格,同时提供明细查看开关,让用户能关联汇总数据与原始订单信息。

内容的提问来源于stack exchange,提问作者msksantosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 10:32:38