使用Pandas的groupby()生成移动平均线,组内首个值设为NaN
分组后生成乳酸值回溯移动平均线的实现
基于按['Test ID', 'Appointment Date:']分组的患者模拟数据,生成乳酸值(对应字段LAC_missing)的回溯移动平均线,规则如下:
- 每组第一个值为
NaN - 每组第二个值等于该组首个观测到的乳酸值
- 后续值依次按回溯累计的方式计算均值
代码实现
# 将乳酸值字段转为数值类型,无法转换的值设为NaN df['LAC_missing'] = pd.to_numeric(df['LAC_missing'], errors='coerce') # 按测试ID和预约日期分组 grouped = df.groupby(['Test ID', 'Appointment Date:']) # 计算每组乳酸值的累计和 df['Cumulative Sum'] = grouped['LAC_missing'].cumsum() # 标记每组内的行索引(从0开始) df['Count'] = grouped.cumcount() # 计算移动平均线:索引大于0时用累计和除以索引值,否则设为NaN df['LAC Moving Average'] = df['Cumulative Sum'] / df['Count'].where(df['Count'] > 0)
内容的提问来源于stack exchange,提问作者Eastman
相关产品推荐
相关产品推荐

