Files
zion_agent/aicodes/module1_dashboard
Alwyn_Misha 8daac30f02 update code
2026-02-26 18:54:56 +08:00
..
2026-02-26 18:54:56 +08:00
2026-02-26 18:54:56 +08:00
2026-02-26 18:54:56 +08:00
2026-02-26 18:54:56 +08:00
2026-02-26 18:54:56 +08:00
2026-02-26 18:54:56 +08:00

Module 1: 心血管疾病数据可视化看板

概述

这是一个基于Streamlit的交互式数据可视化应用程序用于分析和可视化心血管疾病数据。

功能特性

  • 数据加载与清洗
  • 特征工程年龄转换、BMI计算
  • 异常值处理(血压数据)
  • 交互式数据筛选
  • 多种可视化图表
  • 数据导出功能

文件结构

module1_dashboard/
├── cardio_dashboard.py    # 主应用程序文件
└── README.md             # 本说明文件

运行要求

1. 环境配置

确保已创建并激活conda虚拟环境

conda create -n cardioenv python=3.10
conda activate cardioenv

2. 安装依赖

cd aicodes
pip install -r requirements.txt

3. 准备数据文件

心血管疾病.xlsx 文件放置在以下路径:

F:\Project\PythonProject\zion_agent\data\心血管疾病.xlsx

如果数据文件不存在,应用程序将使用示例数据进行演示。

运行应用程序

方式1: 使用Streamlit命令行

cd aicodes/module1_dashboard
streamlit run cardio_dashboard.py

方式2: 使用指定的Python解释器

"C:\Users\Yeraphael\.conda\envs\cardioenv\python.exe" -m streamlit run cardio_dashboard.py

应用程序界面

侧边栏筛选器

  • 年龄范围滑块: 筛选指定年龄范围的记录
  • 性别多选框: 筛选指定性别的记录1=男性2=女性)
  • 心血管疾病状态: 筛选疾病状态0=无疾病1=有疾病)

主页展示

  • 总记录数: 筛选后的数据记录总数
  • 心血管疾病风险率: 心血管疾病患者的比例
  • 平均年龄: 筛选后数据的平均年龄

可视化图表

  1. 年龄分布直方图: 按心血管疾病状态区分的年龄分布
  2. BMI类别堆叠柱状图: BMI类别对心血管疾病的影响
  3. 血压与年龄关系图: 收缩压和舒张压与年龄的关系

数据导出

可以从侧边栏下载筛选后的数据为CSV文件。

数据处理流程

1. 数据加载

  • 从Excel文件加载数据
  • 检查文件是否存在
  • 显示原始数据信息

2. 特征工程

  • 将age(天)转换为age_years(年)
  • 计算BMI: weight / (height/100)^2
  • 创建BMI类别: 偏瘦、正常、超重、肥胖

3. 数据清洗

  • 删除舒张压≥收缩压的记录
  • 删除血压极端异常值:
    • 收缩压: 90-250 mmHg
    • 舒张压: 60-150 mmHg

4. 类别转换

  • 胆固醇水平: 1=正常, 2=高于正常, 3=显著高于正常
  • 血糖水平: 1=正常, 2=高于正常, 3=显著高于正常

故障排除

常见问题

  1. 数据文件未找到: 应用程序将使用示例数据进行演示
  2. 缺少必需列: 应用程序会跳过相关处理步骤并显示警告
  3. 依赖包缺失: 确保已安装requirements.txt中的所有包

日志查看

Streamlit应用程序运行时会在终端显示日志信息包括

  • 数据加载状态
  • 数据处理步骤
  • 错误和警告信息

开发说明

文件路径已硬编码为:F:\Project\PythonProject\zion_agent\data\心血管疾病.xlsx

  • 如需更改数据路径,请修改cardio_dashboard.py中的DATA_PATH常量
  • 所有数据处理函数都使用了@st.cache_data装饰器以提高性能