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

Pandas按AdmittingCode分组计算LOS均值生成分类列的实现方法

Pandas分组生成LOS分类列实现方案

核心思路

  • 用groupby()按AdmittingCode字段分组后取LOS列,调用transform('mean')计算每组均值,该方法会返回和原DataFrame长度一致的均值序列,可直接和每行数据对齐
  • 通过布尔判断直接转整数的方式赋值,小于分组均值返回0,大于等于返回1,仅需一行代码即可生成目标列

完整实现代码

import pandas as pd

# 构造示例输入DataFrame,实际使用时替换成你自己的数据源即可
df = pd.DataFrame({
    'MemberID': [1, 2, 1, 2],
    'AdmittingCode': ['a', 'a', 'b', 'b'],
    'LOS': [5, 10, 2, 1]
})

# 核心处理逻辑
df['LOSCategory'] = (df['LOS'] >= df.groupby('AdmittingCode')['LOS'].transform('mean')).astype(int)

结果验证

运行上述代码后输出df即可得到预期结果:

MemberIDAdmittingCodeLOSLOSCategory
1a50
2a101
1b21
2b10

逻辑说明

groupby('AdmittingCode')['LOS'].transform('mean')会先分别计算各组均值:a组均值为(5+10)/2=7.5,b组均值为(2+1)/2=1.5,返回的序列为[7.5, 7.5, 1.5, 1.5],和原DataFrame每行一一对应。布尔判断后转整数会自动把True转为1、False转为0,完全符合赋值要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:15:01