как объединить кадры данных, имеющие неодинаковую длину - PullRequest
0 голосов
/ 24 октября 2019

у нас есть ежедневные прогнозы для данных, как показано ниже:

df_test_daily['prediction'].head()

Datetime
2014-09-26    343.434258
2014-09-27    346.512980
2014-09-28    349.591701
2014-09-29    352.670422
2014-09-30    355.749144

У нас также есть среднее часовое отношение (0-23 часа).


hourly_frac.head()
        Hour  ratio
0       0  0.044287
1       1  0.035343
2       2  0.029911
3       3  0.024714
4       4  0.020802

Как мы можем использовать среднее часовое отношение к ежедневным данным для получения часовых прогнозов.

скажем, для 2014-09-26 прогноз - 343. Теперь среднее часовое отношение должноумножить на 343 для генерации 24-часовых данных или прогнозов.

Ожидаемый результат:

df_test_hourly['prediction']

Datetime
2014-09-26 00:00:00    X1
2014-09-26 01:00:00    X2
2014-09-26 02:00:00    X3
2014-09-26 03:00:00    X4
2014-09-26 04:00:00    X5
...
2014-09-26 23:00:00    X23

1 Ответ

0 голосов
/ 24 октября 2019

Вам потребуется объединить два кадра данных, чтобы получить новый кадр данных со всеми Datetime-Hr возможными комбинациями:

df_preds = df_test_daily.assign(key=1).merge(df_hours.assign(key=1)).drop('key', axis=1)

И затем вы можете легко рассчитать прогноз для каждого часа каждого дня с помощью:

df_preds['hourly_prediction'] = df_preds['prediction'] * df_preds['ratio']
...