我有一个包含以下列的数据框:{'day','measurement'}
一天内可能会有几次测量(或根本没有测量)
例如:
day | measurement
1 | 20.1
1 | 20.9
3 | 19.2
4 | 20.0
4 | 20.2
和一系列系数:
coef={-1:0.2, 0:0.6, 1:0.2}
我的目标是对数据进行重新采样并使用系数对其进行平均(应该忽略缺失的数据)。
这是我为计算而编写的代码
window=[-1,0,-1]
df['resampled_measurement'][df['day']==d]=[coef[i]*df['measurement'][df['day']==d-i].mean() for i in window if df['measurement'][df['day']==d-i].shape[0]>0].sum()
df['resampled_measurement'][df['day']==d]/=[coef[i] for i in window if df['measurement'][df['day']==d-i].shape[0]>0].sum()
对于上面的示例,输出应为:
Day measurement
1 20.500
2 19.850
3 19.425
4 19.875
问题是代码永远运行,我很确定有更好的方法来重新采样系数。
任何建议将不胜感激!