次の列を持つデータ フレームがあります。{'day','measurement'}
また、1 日に複数の測定が行われる (またはまったく測定されない) 場合もあります。
例えば:
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
問題は、コードが永久に実行されることです。係数を使用してリサンプリングするより良い方法があると確信しています。
アドバイスをいただければ幸いです。