Я хочу пересчитать от часа до получаса.Я использую .ffill()
в примере, но я также протестировал .asfreq()
в качестве промежуточного шага.
Цель состоит в том, чтобы получить интервалы в полчаса, в которых почасовые значения распределены между интервалами повышенной дискретизации, иЯ пытаюсь найти общее решение для любых диапазонов с той же проблемой.
import pandas as pd
index = pd.date_range('2018-10-10 00:00', '2018-10-10 02:00', freq='H')
hourly = pd.Series(range(10, len(index)+10), index=index)
half_hourly = hourly.resample('30min').ffill() / 2
Серия hourly
выглядит следующим образом:
2018-10-10 00:00:00 10
2018-10-10 01:00:00 11
2018-10-10 02:00:00 12
Freq: H, dtype: int64
И half_hourly
:
2018-10-10 00:00:00 5.0
2018-10-10 00:30:00 5.0
2018-10-10 01:00:00 5.5
2018-10-10 01:30:00 5.5
2018-10-10 02:00:00 6.0
Freq: 30T, dtype: float64
Проблема с последней состоит в том, что нет строки для представления 02:30:00
Я хочу добиться чего-то, что:
2018-10-10 00:00:00 5.0
2018-10-10 00:30:00 5.0
2018-10-10 01:00:00 5.5
2018-10-10 01:30:00 5.5
2018-10-10 02:00:00 6.0
2018-10-10 02:30:00 6.0
Freq: 30T, dtype: float64
Я понимаю, что серия hourly
заканчивается в 02:00, поэтому нет никаких оснований ожидать, что панды вставят последние полчаса по умолчанию.Однако после прочтения многих устаревших / старых постов, некоторых более новых, документации и поваренной книги , я все еще не смог найти простое решение.
Наконец, я также протестировал использование .mean()
, но это не заполняло NaN . And interpolate()
не усредняли по часам, как я этого хотел.
Мой .ffill() / 2
в этом случае почти работает как способ распространения часа на полчаса, но это похоже на хак с проблемой, которую, я думаю, панды уже обеспечивают лучшее решение.
Заранее спасибо.