Appearance
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)- 打印各年龄区间高风险患者比例
- 打印各年龄区间患者数量