转换日期时间格式并在 pandas 上合并两个 OHLC 时间序列

Convert Datetime formats and merge two OHLC timeseries on pandas

我的计划:

我有两个具有 OHLC 值的不同数据集,一个代表每周 (1W) 时间范围:weekly_df,另一个代表每小时 (1H) 时间范围 hourly_df

这是两个数据框的样子:

我的目标是通过使用 pandas merge 然后 ffill 将每周的 OHLC 值合并到每小时的 df。但是,在我这样做之前,我需要以相同的格式和类型获取 date 列。这意味着我需要在日期后用 00:00:00 重新格式化每周日期。我是这样做的:

问题:

完成后,所有内容现在都是字符串,当我尝试将其转换回日期时间时,日期列中的 00:00:00 消失了:

完成后,我想合并 datefill 的数据框,以便给定日期的所有每小时 OHLC 值也有一列显示其每周 OHLC价值。 截至目前,这 不起作用 因为合并仅合并数据帧之间的公共日期并忽略其余日期:

有没有更简单的方法呢?由于我尝试过的大多数方法都返回错误。

两个数据框CSV文件:

如果您需要测试它,这里有两个 CSV 文件: Hourly Weekly

如有任何帮助,我们将不胜感激。提前致谢!

对于将来遇到类似问题的任何人,以下是我的解决方法:

由于数据帧上应用的日期时间格式未强制执行 00:00:00,我对两个数据帧的时间进行了 1 秒的偏移 00:00:01,如下所示:

hourly_df['date'] = hourly_df['date'] + pd.DateOffset(seconds=1)

这有助于我在每周 df 上强制执行相同的格式,方法是将其偏移 1 秒。

最后,因为我现在有相同的 date 列,所以我可以 merge & ffill 它们如下:

merged_df = hourly_df.merge(weekly_df ,on =['date'], how='left').ffill()

合并显示结果如下:

如果其他人找到另一种方法来通过保持原始时间来解决此问题,请告诉我。干杯!