Python:变量(variable)

变量类型

变量有许多类型,可分为连续变量、有序多分类(等级)变量)、无序多分类变量、二分类变量。


变量类型转换

有些类型的变量可以转换为其他类型的变量。

变量类型的转换举例
无序多分类→n个二分类疾病(无序多分类)有高血压、糖尿病、脑积水等。可将疾病分为是否高血压(二分类)、是否糖尿病(二分类)、是否脑积水(二分类)等

连续→等级

根据空腹血糖水平(连续)可以分级:偏低、正常、偏高(等级)
等级→二分类偏低、正常、偏高的空腹血糖水平(等级)可分为是否高血糖(二分类)

无序多分类→n个二分类

"""疾病是无序多分类变量"""
df = pd.DataFrame({'门诊号': [1, 2, 3, 4, 5],
                   '疾病': ['高血压', '糖尿病', '脑积水', '糖尿病', '高血压']})

df 
# 输出:
#    门诊号   疾病
# 0    1  高血压
# 1    2  糖尿病
# 2    3  脑积水
# 3    4  糖尿病
# 4    5  高血压


"""无序多分类→n个二分类"""
df = pd.concat([df, 
                pd.get_dummies(df['疾病'], prefix='疾病')], 
                axis=1)

df 
# 输出:
#    门诊号   疾病  疾病_糖尿病  疾病_脑积水  疾病_高血压
# 0    1  高血压   False   False    True
# 1    2  糖尿病    True   False   False
# 2    3  脑积水   False    True   False
# 3    4  糖尿病    True   False   False
# 4    5  高血压   False   False    True


连续→等级→二分类

"""空腹血糖是连续变量"""
df = pd.DataFrame({'门诊号': [1, 2, 3, 4, 5],
                   '空腹血糖': [1.1, 4.5, 5.5, 7.5, 11.5]})

df
# 输出:
#    门诊号  空腹血糖
# 0    1   1.1
# 1    2   4.5
# 2    3   5.5
# 3    4   7.5
# 4    5  11.5


"""连续→等级"""
conditions = [df['空腹血糖'] < 3.9,
              (df['空腹血糖'] >= 3.9) & (df['空腹血糖'] <= 6.1),
              df['空腹血糖'] > 6.1]

labels = ['低血糖', '正常', '高血糖']

df['空腹血糖分级'] = np.select(conditions, labels)

df
# 输出:
#    门诊号  空腹血糖 空腹血糖分级
# 0    1   1.1    低血糖
# 1    2   4.5     正常
# 2    3   5.5     正常
# 3    4   7.5    高血糖
# 4    5  11.5    高血糖


"""等级→二分类"""
df['是否高血糖'] = df.apply(lambda x : '高血糖' if x['空腹血糖分级']=='高血糖' else '非高血糖', 
                            axis=1)

df
# 输出:
#    门诊号  空腹血糖 空腹血糖分级 是否高血糖
# 0    1   1.1    低血糖  非高血糖
# 1    2   4.5     正常  非高血糖
# 2    3   5.5     正常  非高血糖
# 3    4   7.5    高血糖   高血糖
# 4    5  11.5    高血糖   高血糖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值