Вот мой df
timestamp id value
0 2019-11-04 14:00:10.432783 device1 3000
1 2019-11-04 12:20:03.946156 device1 6000
2 2019-11-04 11:19:03.946156 device1 1000
3 2019-11-04 10:19:03.946156 device1 4000
4 2019-11-04 09:19:03.946156 device2 1000
5 2019-11-04 08:19:03.946156 device2 4000
Вот мой ожидаемый df
Expected
timestamp id value finalvalue
0 2019-11-04 13:00:10.432783 device1 3000 9000
1 2019-11-04 12:20:03.946156 device1 6000 6000
2 2019-11-04 11:19:03.946156 device1 1000 5000
3 2019-11-04 10:19:03.946156 device1 4000 4000
4 2019-11-04 09:19:03.946156 device2 1000 5000
5 2019-11-04 08:19:03.946156 device2 4000 4000
today = dt.datetime.utcnow()
prev_hour = today - timedelta(hours=1)
prev_hour_top_window = prev_hour + timedelta(minutes=1)
prev_hour_bot_window = prev_hour - timedelta(minutes=1)
prev_hour_values = df.loc[(df['timestamp'] >= prev_hour_bot_window) &(df['timestamp'] <= prev_hour_top_window)]
prev_hour_values_mean = prev_hour_values.mean()
df['finalvalue'] = df['value'] - prev_hour_values_mean
Я ожидаю вычесть предыдущее часовое значение только с последней точкой данных, вместо этогоЯ вычитаю среднее значение из всех точек данных.