You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

高频DataFrame中实现当前价格与5分钟前收盘价差值计算

高频DataFrame计算与5分钟前分钟级收盘价的价格变动

需求说明

现有两个DataFrame:

  • 高频数据df:索引为datetime64类型,包含逐笔交易的Price等字段
  • 分钟级数据minute_df:索引为datetime64类型,包含每分钟的close收盘价

需要为df新增price_change列,规则为:

  • 每行的price_change = 当前行Price - 当前时间往前推5分钟对应的minute_df中的close价格
  • 例:06:27时段的所有行,均引用06:22的close值计算;06:28时段则引用06:23的close值
  • 若对应时间的close数据不存在,填充NaN

数据示例

高频数据df

TimeStamp                           Price   Q  hour min
2022-10-05 05:30:11.344618-05:00    8636    1   5   30
2022-10-05 05:30:12.647597-05:00    8637    1   5   30
2022-10-05 05:30:20.080559-05:00    8637    1   5   30
2022-10-05 05:30:21.267389-05:00    8637    2   5   30
2022-10-05 05:30:21.267952-05:00    8636    1   5   30

分钟级数据minute_df

TimeStamp                   open    high    low     close
2022-10-05 05:30:00-05:00   8636    8645    8635    8645
2022-10-05 05:31:00-05:00   8645    8647    8637    8638
2022-10-05 05:32:00-05:00   8639    8650    8639    8649
2022-10-05 05:33:00-05:00   8648    8652    8648    8649

解决步骤

1. 确保索引为datetime类型

先确认两个DataFrame的索引是datetime64格式,如果原本是列的话,设置为索引:

import pandas as pd

# 若df的TimeStamp是列,转为索引
if 'TimeStamp' in df.columns:
    df = df.set_index('TimeStamp')
# 若minute_df的TimeStamp是列,转为索引
if 'TimeStamp' in minute_df.columns:
    minute_df = minute_df.set_index('TimeStamp')

2. 计算每行对应的目标查询时间

对df的每一行时间,计算往前推5分钟后的整点分钟时间(匹配minute_df的时间格式):

# 减去5分钟
target_times = df.index - pd.Timedelta(minutes=5)
# 向下取整到分钟,得到对应的分钟级时间点
target_times = target_times.floor('min')

3. 匹配收盘价并计算价格变动

用计算出的target_times去minute_df中提取对应的close值,再计算价格变动:

# 映射获取5分钟前的收盘价,无对应数据则返回NaN
df['prev_5min_close'] = target_times.map(minute_df['close'])
# 计算price_change
df['price_change'] = df['Price'] - df['prev_5min_close']

# 可选:删除中间辅助列prev_5min_close
# df = df.drop('prev_5min_close', axis=1)

结果说明

以示例数据为例,df中所有行的时间是05:30左右,往前推5分钟后是05:25,而minute_df中没有05:25的close数据,因此所有行的price_change均为NaN,符合数据不足时填充NaN的要求。

内容的提问来源于stack exchange,提问作者skepticalforever

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 11:50:23