转换日期时间格式并在 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
消失了:
完成后,我想合并 date
和 fill
的数据框,以便给定日期的所有每小时 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()
合并显示结果如下:
如果其他人找到另一种方法来通过保持原始时间来解决此问题,请告诉我。干杯!
我的计划:
我有两个具有 OHLC 值的不同数据集,一个代表每周 (1W) 时间范围:weekly_df
,另一个代表每小时 (1H) 时间范围 hourly_df
。
这是两个数据框的样子:
我的目标是通过使用 pandas merge 然后 ffill
将每周的 OHLC 值合并到每小时的 df。但是,在我这样做之前,我需要以相同的格式和类型获取 date
列。这意味着我需要在日期后用 00:00:00
重新格式化每周日期。我是这样做的:
问题:
完成后,所有内容现在都是字符串,当我尝试将其转换回日期时间时,日期列中的 00:00:00
消失了:
完成后,我想合并 date
和 fill
的数据框,以便给定日期的所有每小时 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()
合并显示结果如下:
如果其他人找到另一种方法来通过保持原始时间来解决此问题,请告诉我。干杯!