Skip to content

1.导入库

python
import pandas as pd
import numpy as np
  • 导⼊ pandas 库并简写为 pd ,⽤于数据处理和分析
  • 导⼊ numpy 库并简写为 np ,⽤于数值计算

2.读取数据

python
data = pd.read_csv('patient_data.csv')
  • 使用 pandas 的 read_csv 函数读取名为 'patient_data.csv' 的 CSV ⽂件
  • 将数据存储在名为 data 的 DataFrame 中

3.风险等级分析

python
data['RiskLevel'] = np.where(data['DaysInHospital'] > 7, '高风险患者', '低风险患者')
  • 使用 numpy 的 where 函数创建新列 'RiskLevel'
  • 如果 'DaysInHospital'( 住院天数 ) ⼤于 7 天,标记为 " 高风险患者“
  • 否则标记为 " 低风险患者 "
python
risk_counts = data['RiskLevel'].value_counts()
  • 计算不同风险等级的患者数量
  • value_counts() 返回各分类的计数
python
high_risk_ratio = risk_counts['高风险患者'] / len(data)
low_risk_ratio = risk_counts['低风险患者'] / len(data)
  • 计算⾼风险患者占总患者数的⽐例
  • 计算低风险患者占总患者数的⽐例
python
print("高风险患者数量:", risk_counts['高风险患者'])
print("低风险患者数量:", risk_counts['低风险患者'])
print("高风险患者占比:", high_risk_ratio)
print("低风险患者占比:", low_risk_ratio)
  • 打印⾼风险患者数量
  • 打印低风险患者数量
  • 打印⾼风险患者占比
  • 打印低风险患者占比

4.BMI 区间分析

python
bmi_bins = [0, 18.5, 24, 28, np.inf]
bmi_labels = ['偏瘦', '正常', '超重', '肥胖']
  • 定义 BMI 区间的边界点: 0-18.5( 偏瘦 ), 18.5-24( 正常 ), 24-28( 超重 ), 28 及以上 ( 肥胖 )
  • 定义对应的区间标签
python
data['BMIRange'] = pd.cut(data['BMI'], bins=bmi_bins, labels=bmi_labels, right=False)
  • 使⽤ pd.cut 将 BMI 值划分到指定区间
  • bins 参数指定区间边界
  • labels 参数指定区间标签
  • right=False 表⽰使⽤左闭右开区间
python
bmi_risk_rate = data.groupby('BMIRange')['RiskLevel'].apply(lambda x: (x == '高风险患者').mean())
  • 按 BMI 区间分组
  • 计算每个区间内高风险患者的⽐例
  • 使用 lambda 函数计算每个组中 ' 高风险患者 ' 的均值 ( ⽐例 )
python
bmi_patient_count = data['BMIRange'].value_counts()
  • 统计每个 BMI 区间的患者总数
python
print("BMI区间中高风险患者的比例和患者数:")
print(bmi_risk_rate) 
print(bmi_patient_count)
  • 打印各 BMI 区间⾼风险患者⽐例
  • 打印各 BMI 区间患者数量

5.年龄区间分析

python
age_bins = [0, 26, 36, 46, 56, 66, np.inf]
age_labels = ['≤25岁', '26-35岁', '36-45岁', '46-55岁', '56-65岁', '>65岁']
  • 定义年龄区间的边界点
  • 定义对应的年龄区间标签
python
data['AgeRange'] = pd.cut(data['Age'], bins=age_bins, labels=age_labels, right=False)
  • 使⽤ pd.cut 将年龄划分到指定区间
  • 参数含义与 BMI 区间划分相同
python
age_risk_rate = data.groupby('AgeRange')['RiskLevel'].apply(lambda x: (x == '高风险患者').mean())
  • 按年龄区间分组
  • 计算每个区间内高风险患者的⽐例
python
age_patient_count = data['AgeRange'].value_counts()
  • 统计每个年龄区间的患者总数
python
print("年龄区间中高风险患者的比例和患者数:")
print(age_risk_rate) 
print(age_patient_count)
  • 打印各年龄区间高风险患者比例
  • 打印各年龄区间患者数量