【问题标题】:how to combine dataframes having unequal lengths如何组合长度不等的数据帧
【发布时间】:2020-02-20 07:34:50
【问题描述】:

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

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

【问题讨论】:

  • 问题不清楚。您能否将您的输入和预期输出放在您的问题中?请将其发布为文字而非图片。
  • 改为上传print(df_test_daily.head())的结果。 必须应用比率是什么意思?基于HrHour 的倍率?如果是这样,浮动Hour 的比率是多少,例如在您的第二个数据中?
  • provide a reproducible copy of the DataFrame with to_clipboardStack Overflow Discourages Screenshots。由于包含不必要的屏幕截图,该问题可能会被否决。通过使用屏幕截图,您会阻止任何人为您提供帮助。没有人愿意通过屏幕截图重新输入您的内容,而且屏幕截图通常不可读。

标签: python pandas time-series


【解决方案1】:

您需要合并这两个数据框以获得一个新的数据框,其中包含所有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']

【讨论】:

  • 'Datetime' 索引在这里丢失。任何其他建议。
猜你喜欢
  • 1970-01-01
  • 2017-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-15
  • 2015-07-25
相关资源
最近更新 更多