数据可视化模拟题1-题目

  • ~2.50K 字
  1. 1. Python程序开发竞赛 - 模拟题(第一套)
    1. 1.1. 第三部分:数据分析与可视化(30分)
    2. 1.2. 任务一:各科室门诊量月度趋势分析(15分)
      1. 1.2.1. 【任务说明】
      2. 1.2.2. 【数据集说明】
      3. 1.2.3. 【任务要求】
      4. 1.2.4. 【操作说明】
      5. 1.2.5. 【评分标准】
    3. 1.3. 任务二:患者年龄与住院费用分布分析(15分)
      1. 1.3.1. 【任务说明】
      2. 1.3.2. 【数据集说明】
      3. 1.3.3. 【任务要求】
      4. 1.3.4. 【操作说明】
      5. 1.3.5. 【评分标准】
    4. 1.4. 【注意事项】

Python程序开发竞赛 - 模拟题(第一套)

第三部分:数据分析与可视化(30分)


任务一:各科室门诊量月度趋势分析(15分)

技术架构:Django + PyEcharts

【任务说明】

现有某三甲医院2018-2023年共6年的门诊就诊数据(`hospital_outpatient.csv`),请根据任务要求完成数据分析与可视化。

【数据集说明】

数据集文件:`hospital_outpatient.csv`

字段名 说明 示例
visit_id 就诊记录唯一标识 V20180001
visit_date 就诊日期 2018/01/15
department 就诊科室 内科
patient_age 患者年龄 45
patient_gender 患者性别 男/女
doctor_name 主治医生姓名 张医生
diagnosis 诊断结果 上呼吸道感染
cost 门诊费用(元) 256.80

【任务要求】

1.数据读取与清洗(5分)

  • 读取数据集 `hospital_outpatient.csv`,对数据进行必要的清洗;
  • 处理缺失值:删除关键字段为空的记录;
  • 处理重复值:删除 `visit_id` 重复的记录;
  • 处理异常值:删除 `cost` 为空或负数的记录;
  • 处理格式不一致:统一 `visit_date` 日期格式(如 `2018/01/15` 和 `2018-1-15` 统一转为 `datetime` 类型);
  • 修正科室名称别名(如”内科室”统一为”内科”)。

2.数据统计与分析(5分)

  • 按年份和月份统计内科、外科、儿科、妇产科、急诊科5个科室的月度门诊量;
  • 生成”年-月”格式的时间序列索引。

3.可视化与展示(5分)

  • 使用 PyEcharts 库绘制堆叠面积图(Stacked Area Chart),展示各科室门诊量的月度变化趋势;
  • X轴为”年-月”格式的时间序列;
  • 5个科室分别使用不同颜色区分;
  • 设置图表标题、图例、DataZoom缩放组件,支持数据缩放浏览;
  • 使用 Django 框架在前端页面中渲染展示该图表。

【操作说明】

  1. 从指定目录获取相关项目工程代码。
  2. 完成任务后,根据平台”答题区”对应内容要求,完成答题报告并点击”保存”按钮实时保存。

【评分标准】

评分项 分值 说明
数据清洗 5分 正确处理缺失值、重复值、异常值、格式不一致等问题
数据统计 5分 正确按年月和科室分组统计门诊量
可视化展示 5分 正确使用PyEcharts绘制堆叠面积图并通过Django渲染

任务二:患者年龄与住院费用分布分析(15分)

技术架构:Seaborn 独立脚本

【任务说明】

现有某医院2022-2023年的住院患者数据(`hospital_inpatient.csv`),请根据任务要求完成数据分析与可视化。

【数据集说明】

数据集文件:`hospital_inpatient.csv`

字段名 说明 示例
patient_id 患者唯一标识 P20220001
admission_date 入院日期 2022/03/10
discharge_date 出院日期 2022/03/18
department 住院科室 外科
patient_age 患者年龄 52
patient_gender 患者性别 男/女
stay_days 住院天数 8
total_cost 住院总费用(元) 15800.00
surgery 是否手术 是/否
diagnosis 诊断结果 阑尾炎

【任务要求】

1.数据读取与清洗(5分)

  • 读取数据集 `hospital_inpatient.csv`,对数据进行必要的清洗;
  • 处理 `patient_age` 异常值:将年龄为0或大于150的记录设为NaN后删除;
  • 处理 `total_cost` 缺失值和极端值:删除费用缺失或大于500000的记录;
  • 删除 `discharge_date` 早于 `admission_date` 的异常记录。

2.数据分析(5分)

  • 按科室和性别分组,分析患者年龄分布与住院费用的关系;
  • 计算各科室、各性别的费用统计指标(均值、中位数、标准差等)。

3.可视化与输出(5分)

  • 使用 Seaborn 库绘制箱线图(Boxplot),展示不同科室住院费用的分布情况;
  • 使用 `hue` 参数按性别分组显示;
  • 设置图表标题、坐标轴标签;
  • 使用 `sns.set_theme()` 设置图表样式;
  • 将图表保存为 PNG 图片文件(分辨率 dpi=150,图像尺寸 figsize=(12,6))。

【操作说明】

  1. 从指定目录获取相关项目工程代码。
  2. 完成任务后,根据平台”答题区”对应内容要求,完成答题报告并点击”保存”按钮实时保存。

【评分标准】

评分项 分值 说明
数据清洗 5分 正确处理年龄异常值、费用极端值、日期逻辑错误等问题
数据分析 5分 正确按科室和性别分组分析费用分布
可视化输出 5分 正确使用Seaborn绘制箱线图并保存为PNG文件

【注意事项】

  1. 所有代码注释使用中文。
  2. 代码风格清晰,缩进规范,符合 PEP 8 编码规范。
  3. CSV数据文件路径建议使用 `os.path` 模块动态构建,确保代码的可移植性。
  4. 任务一为 Django Web 项目,需确保项目结构完整,能正常运行。
  5. 任务二为独立 Python 脚本,直接运行即可生成结果。
  6. 比赛时间:90分钟。
  7. 总分:30分。
分享