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

Pandas按天分组计算分钟K线每日VWAP的实现方法

按日期分组计算每日VWAP的实现方案

核心逻辑

按已有日期字段分组后,对每个交易日的1分钟K线独立执行VWAP累积计算,避免跨天数据干扰计算结果。

高效实现代码

假设你的日期标识列名为trade_date,可直接使用下方向量化计算方案,性能远高于逐组apply:

# 计算单根K线的成交量*典型价格中间值
df['pv'] = df['v'] * (df['h'] + df['l']) / 2
# 按日期分组分别做累积求和后相除,得到每日滚动VWAP
df['daily_vwap'] = df.groupby('trade_date')['pv'].cumsum() / df.groupby('trade_date')['v'].cumsum()

如果你不需要保留中间列pv,也可以合并为单一行写法:

df['daily_vwap'] = df.groupby('trade_date').apply(
    lambda x: (x.v*(x.h+x.l)/2).cumsum() / x.v.cumsum()
).reset_index(level=0, drop=True)

注意事项

  • 请将代码中的trade_date替换为你实际使用的日期列名称
  • 计算前请确认数据集已经按「日期+时间」升序排列,否则累积求和的结果会不符合预期
  • 第一种全向量化写法性能最优,即使处理数百万行级别的1分钟K线数据也不会有明显延迟

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:15:03