You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

健康数据集血压阈值定义求助:如何标记Bloodpressure>=160为患病并分组分析

血压患病状态定义及分组分析实现方案

一、定义血压患病状态

无需用阈值排序,直接通过条件判断生成患病状态变量即可,以Python pandas为例:

  • 读取数据集后,新增Hypertension列标记患病状态:
import pandas as pd
import numpy as np

# 假设数据集已读取为df
df['Hypertension'] = np.where(df['Bloodpressure'] >= 160, 1, 0)
# 或用apply方法(数据量小时可用)
df['Hypertension'] = df['Bloodpressure'].apply(lambda x: 1 if x >= 160 else 0)
  • 验证逻辑:执行df['Hypertension'].value_counts(),查看患病/未患病的数量分布,确认规则是否生效。

二、按性别和年龄组分析血压数据

1. 划分年龄组

先根据需求自定义年龄区间,示例分为青年、中年、老年三组:

# 按年龄区间分组,bins可根据实际需求调整
df['AgeGroup'] = pd.cut(df['Age'], bins=[0, 30, 60, 100], labels=['青年', '中年', '老年'])
# 若年龄为字符串类型,需先转数值:df['Age'] = pd.to_numeric(df['Age'], errors='coerce')

2. 核心分析操作

(1)各分组的患病比例统计

# 按性别+年龄组分组,计算每组患病比例
grouped_prevalence = df.groupby(['Gender', 'AgeGroup'])['Hypertension'].mean().reset_index()
grouped_prevalence.rename(columns={'Hypertension': '患病比例'}, inplace=True)
print(grouped_prevalence)

(2)各分组的血压描述性统计

# 获取每组血压的均值、中位数、标准差等关键指标
grouped_bp_stats = df.groupby(['Gender', 'AgeGroup'])['Bloodpressure'].describe()
print(grouped_bp_stats)

(3)患病状态的交叉分布统计

# 生成交叉表,查看各分组的患病/未患病人数分布
cross_distribution = pd.crosstab([df['Gender'], df['AgeGroup']], df['Hypertension'], margins=True)
cross_distribution.columns = ['未患病', '患病', '总计']
print(cross_distribution)

内容的提问来源于stack exchange,提问作者Amin Vahdati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 12:45:49