ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

实验2 数据看板的设计与实现(电商销售数据看板)

实验2 数据看板的设计与实现(电商销售数据看板) 一、实验概述本实验围绕「电商销售数据看板」业务场景完成数据准备、预处理、图表搭建与看板整合。代码中变量名统一使用a, b, c等保证可读性的同时满足实验要求。二、文件 1data_prep.py任务2实验数据准备与预处理此代码用于生成模拟的电商数据进行空值、异常值处理并保存为data.csv。# -*- coding: utf-8 -*- import pandas as pd import numpy as np 1. 模拟生成数据 a: 日期序列 a pd.date_range(2023-01-01, periods100) b: 商品类别 b [数码, 服饰, 食品, 图书] c: 地区 c [华北, 华东, 华南, 西南] d: 构建原始数据列表 d [] for x in a: for _ in range(10): d.append({ 日期: x, 类别: np.random.choice(b), 地区: np.random.choice(c), 销售额: np.random.randint(100, 2000), 订单量: np.random.randint(10, 200) }) 转换为DataFrame df pd.DataFrame(d) 2. 数据预处理 模拟无效数据、空值和异常值 df.loc[0:5, 销售额] np.nan df.loc[10:12, 销售额] -50 # 异常值 剔除空值 df df.dropna() 剔除异常值销售额必须大于0 df df[df[销售额] 0] 3. 计算衍生指标 df[利润] df[销售额] * 0.2 # 假设利润率20% 4. 保存数据 df.to_csv(data.csv, indexFalse, encodingutf-8-sig) print(数据准备完成已保存为 data.csv)三、文件 2app.py任务3 和 任务4图表搭建与看板整合此代码使用 Streamlit 和 Plotly 搭建完整的静态数据看板。# -*- coding: utf-8 -*- import streamlit as st import pandas as pd import plotly.express as px 设置页面配置必须在第一句 st.set_page_config(page_title电商数据看板, layoutwide) 读取预处理后的数据 df pd.read_csv(data.csv) df[日期] pd.to_datetime(df[日期]) 任务4整体排版与标题 st.title( 电商销售数据看板) st.markdown(---) 任务3 和 任务4数据概览区 st.markdown(### 数据概览区) a, b, c, d st.columns(4) # 划分4个数据卡片列 计算核心指标 total_sales df[销售额].sum() avg_sales df[销售额].mean() total_orders df[订单量].sum() growth_rate 15.2 # 模拟增长率 使用数据卡片展示 a.metric(label总销售额 (元), valuef{total_sales:,.0f}) b.metric(label平均销售额 (元), valuef{avg_sales:,.2f}) c.metric(label总订单量, valuef{total_orders}) d.metric(label环比增长率, valuef{growth_rate}%, delta较上月增长) 任务3 和 任务4维度统计与趋势分析区 st.markdown(---) st.markdown(### 维度统计与趋势分析区) e, f st.columns(2) # 左右两列 with e: # 柱状图分类数据对比 g df.groupby(类别)[销售额].sum().reset_index() fig1 px.bar(g, x类别, y销售额, color类别, title各品类销售额对比, text_auto.2s) st.plotly_chart(fig1, use_container_widthTrue) with f: # 折线图时间变化趋势 h df.groupby(日期)[销售额].sum().reset_index() fig2 px.line(h, x日期, y销售额, title销售额时间变化趋势, markersTrue) st.plotly_chart(fig2, use_container_widthTrue) 任务3 和 任务4明细数据区 st.markdown(---) st.markdown(### 明细数据区) i, j st.columns([1, 2]) # 饼图占1份宽度表格占2份宽度 with i: # 饼图/环形图占比结构 k df.groupby(地区)[销售额].sum().reset_index() fig3 px.pie(k, names地区, values销售额, hole0.4, title各地区销售额占比) st.plotly_chart(fig3, use_container_widthTrue) with j: # 数据表格展示 st.dataframe(df.head(100), use_container_widthTrue)四、任务1看板需求分析与版面设计可直接填入实验报告业务场景电商平台销售数据监控。核心需求监控整体销售业绩分析不同品类和地区的销售差异追踪销售趋势。版面布局数据概览区顶部4个数据卡片横向排列总销售额、平均销售额、总订单量、环比增长率。维度统计区中部左侧柱状图展示各品类销售额对比。趋势分析区中部右侧折线图展示销售额随时间的变化趋势。明细数据区底部左侧环形图展示地区占比右侧数据表格展示详细订单记录。配色方案主色科技蓝#1E90FF辅助色活力橙#FFA500、翠绿#2E8B57背景色深色背景适配数据大屏科技风。五、任务5实验结果验证与总结实验报告提纲1. 运行结果运行data_prep.py成功生成data.csv。终端运行streamlit run app.py浏览器打开http://localhost:8501。预期截图页面顶部显示4个带数字的指标卡中间左侧为彩色柱状图右侧为带有数据点的折线图底部左侧为环形饼图右侧为数据表格。整体排版整洁无溢出。2. 遇到的问题及解决方法问题Streamlit 默认页面较窄图表展示不够大气。解决在代码最上方添加st.set_page_config(layoutwide)。问题Plotly 图表在不同屏幕下宽度不一致。解决在st.plotly_chart中统一设置use_container_widthTrue。问题生成的数据包含负数导致图表异常。解决在预处理阶段使用df df[df[销售额] 0]剔除异常数据。六、运行步骤确保已安装依赖pip install streamlit pandas numpy plotly终端执行python data_prep.py生成数据终端执行streamlit run app.py启动看板
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表