首页 > 解决方案 > 如何组合长度不等的数据帧

问题描述

我们对数据的每日预测如下所示:

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

标签: pythonpandastime-series

解决方案


您将需要合并两个数据框以获取具有所有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']

推荐阅读