Вот мой фрейм данных
df2 = pd.DataFrame( [
[pd.Timestamp('2019-11-04 14:00:10.432783'), 'device1', 3000],
[pd.Timestamp('2019-11-04 13:20:03.946156'), 'device1', 2000],
[pd.Timestamp('2019-11-04 12:19:03.946156'), 'device1', 1000]
],
columns=["timestamp", "id", "value"]
)
Я пытаюсь получить свой вывод, чтобы получить предыдущую почасовую разницу значений. Однако приведенный ниже код вычитает разницу со всеми точками данных в кадре данных. Как вычесть разницу построчно. [self.input_item]
- мой ввод, df[self.output_item]
- мой окончательный результат
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)][self.input_item]
prev_hour_values_mean = prev_hour_values.mean()
df[self.output_item] = df[self.input_item] - prev_hour_values_mean