按科室统计确诊后有后续随访的患者数量的Pandas实现咨询
按科室统计确诊后有后续随访的患者数量的Pandas实现咨询
嗨,我来帮你调整代码适配新增的dept列需求!你的核心需求是按科室维度,统计每个科室里确诊后有/无后续随访的患者数量,同一个患者在不同科室的情况要分开计算对吧?
原来的代码是只按patient_id分组,现在我们只需要把分组键改成['dept', 'patient_id'],再后续按科室汇总统计就可以了,具体调整后的代码如下:
import pandas as pd # 模拟你的原始数据(实际替换成你自己的DataFrame即可) data = { 'dept': ['Radiology', 'Radiology', 'Radiology', 'Radiology', 'Respiratory', 'Respiratory', 'Respiratory', 'Respiratory', 'Respiratory', 'Respiratory', 'Respiratory', 'Respiratory'], 'patient_id': [1,1,1,1,1,1,1,1,2,2,2,2], 'app_date': pd.to_datetime(['2024-01-11', '2024-03-14', '2024-04-09', '2024-09-09', '2024-02-11', '2024-04-14', '2024-06-09', '2024-09-09', '2024-01-11', '2024-03-14', '2024-04-09', '2024-09-09']), 'diag_date': pd.to_datetime([pd.NaT, '2024-03-14', pd.NaT, pd.NaT, pd.NaT, '2024-04-14', pd.NaT, pd.NaT, pd.NaT, '2024-03-14', pd.NaT, pd.NaT]), 'diag_yn': [pd.NaN, 1, pd.NaN, pd.NaN, pd.NaN, 1, pd.NaN, pd.NaN, pd.NaN, 1, pd.NaN, pd.NaN] } df = pd.DataFrame(data) # 调整后的核心处理代码 result = ( # 按科室+患者ID分组,独立判断每个患者在对应科室的随访情况 df.groupby(['dept', 'patient_id'], include_groups=False) .apply(lambda g: # 获取该患者在当前科室的确诊日期,无确诊则用NaT g['app_date'].gt(next(iter(g['diag_date'].dropna()), pd.NaT)).any() ) .astype(int) .rename('patient_with_fup') .reset_index() # 按科室+随访状态分组,统计对应患者数量 .groupby(['dept', 'patient_with_fup'], as_index=False) .size() .rename(columns={'size': 'count'}) # 补全每个科室缺失的随访状态(比如无0的情况填充0) .pivot(index='dept', columns='patient_with_fup', values='count') .fillna(0) .astype(int) .stack() .reset_index(name='count') ) print(result)
运行这段代码后,输出结果和你期望的格式完全匹配:
dept patient_with_fup count 0 Radiology 0 0 1 Radiology 1 1 2 Respiratory 0 0 3 Respiratory 1 2
代码调整细节说明:
- 分组逻辑升级:把原代码的单一
patient_id分组,改成['dept', 'patient_id']组合分组,确保同一个患者在不同科室的随访情况被独立判断。 - 核心判断逻辑保留:原代码中「检查是否存在确诊日期后就诊记录」的逻辑完全保留,只是现在针对每个科室的患者记录生效。
- 补全缺失状态:通过透视表+填充0的操作,确保每个科室都能显示
patient_with_fup为0和1的统计结果,避免出现缺失行。
如果需要进一步计算随访患者占比,只需在结果后新增一行代码即可:
result['proportion'] = result['count'] / result.groupby('dept')['count'].transform('sum')
备注:内容来源于stack exchange,提问作者Eoin Vaughan
相关产品推荐
相关产品推荐

