数据分析案例:医疗健康数据分析

发布于:2025-05-01 ⋅ 阅读:(19) ⋅ 点赞:(0)

数据分析案例:医疗健康数据分析

1. 项目背景

随着人口老龄化及慢性病患病率的上升,医院对患者再入院(readmission)的管理和预防成为医疗质量和成本控制的关键。再入院不仅增加了医院的负担,也意味着患者未获得充分的随访和康复指导。本案例以某综合医院的患者入院出院数据为例,通过 Pandas 对医疗健康数据进行清洗、探索性分析与建模,构建预测再入院风险的模型,为医院制定个性化干预方案提供数据支持。


2. 数据加载与预处理

2.1 加载数据

假设已将医院电子健康记录导出为 hospital_data.csv,主要字段包括:

  • patient_id:患者唯一标识
  • age:年龄(整数)
  • gender:性别(‘Male’/‘Female’)
  • admission_datedischarge_date:入院与出院日期
  • num_prev_adm:前次入院次数
  • length_of_stay:住院天数
  • num_medications:住院期间用药种类数
  • lab_result:关键实验室指标(连续值)
  • readmitted:是否在30天内再入院(0/1)
import pandas as pd

# 读取数据并解析日期
df = pd.read_csv('hospital_data.csv', parse_dates=['admission_date', 'discharge_date'])
print("数据概览:")
print(df.head())

2.2 数据清洗

  • 检查缺失值与异常
  • 计算住院时长
  • 编码类别变量
# 缺失值统计
print(df.isnull().sum())

# 删除缺失关键字段的记录
df = df.dropna(subset=['age','gender','admission_date','discharge_date','readmitted'])

# 计算住院时长(days)
df['length_of_stay'] = (df['discharge_date'] - df['admission_date']).dt.days.clip(lower=1)

# 性别编码
df['gender'] = df['gender'].map({
   'Male':0,'Female':1})

print("清洗后数据预览:")
print(df[['patient_id','age','gender','length_of_stay','readmitted']].head())

3. 探索性数据分析(EDA)

3.1 再入院率概览

import matplotlib.pyplot as plt

readmit_rate = df['readmitted'].mean()
print(f"总体再入院率:{
     readmit_rate:.2%}")

3.2 按年龄分组的再入院率

age_bins 

网站公告

今日签到

点亮在社区的每一天
去签到