Как добавить значения, происходящие между 2 часами подряд? - PullRequest
1 голос
/ 01 апреля 2020

У меня есть df следующим образом:

dates   values
2020-01-01 00:15:00 87.321
2020-01-01 00:30:00 87.818
2020-01-01 00:45:00 88.514
2020-01-01 01:00:00 89.608
2020-01-01 01:15:00 90.802
2020-01-01 01:30:00 91.896
2020-01-01 01:45:00 92.393
2020-01-01 02:00:00 91.995
2020-01-01 02:15:00 90.504
2020-01-01 02:30:00 88.216
2020-01-01 02:45:00 85.929
2020-01-01 03:00:00 84.238

Я хочу просто сохранить ежечасные значения, когда минута 00 и values происходят до ее добавления.

Пример: для нахождения значения в 2020-01-01 01:00:00 необходимо добавить значения от 2020-01-01 00:15:00 до 2020-01-01 01:00:00 (87,321 + 87,818 + 88,514 + 59.608 = 353,261). Аналогично, для нахождения значения в 2020-01-01 02:00:00 следует добавить значения от 2020-01-01 01:15:00 до 2020-01-01 02:00:00 (90.802 + 91.896 + 92.393 + 91.995 = 348.887)

Желаемый вывод

 dates  values
 2020-01-01 01:00:00    353.261
 2020-01-01 02:00:00    348.887
 2020-01-01 03:00:00    333.67

Я использовал df['dates'].dt.minute.eq(0) для получения логического маскирования, но не могу найти способ добавить их.

Заранее спасибо

1 Ответ

2 голосов
/ 01 апреля 2020
hourly = df.set_index('dates') \  # Set the dates as index
           .resample('1H', closed='right', label='right') \  # Resample, so that you have one value for each hour
           .sum()  # Set the sum of values as new value

hourly = hourly.reset_index()  # If you want to have the dates as column again
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...