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

Python按日期计算VWAP出现ValueError错误该如何解决?

问题根因

你自定义的Vwap函数调用了data.assign()方法,返回的是完整的DataFrame对象(包含所有原始列+新计算的Vwap列),而主函数中你试图把这个多列的DataFrame赋值给data['Vwap']单个列,列数量不匹配触发了对应ValueError。

修改方案

二选一即可:

方案1:调整Vwap函数返回值,仅返回计算后的VWAP序列

保留主函数赋值逻辑不变,修改Vwap函数为如下内容:

def Vwap(data):
    H = data.High
    L = data.Low
    C = data.Close
    V = data.volume
    return ((V * ((H+L+C)/3)).cumsum() / V.cumsum())

方案2:调整主函数赋值逻辑,直接接收完整DataFrame

不修改Vwap函数,把主函数中如下代码:

data['Vwap'] = data.groupby('Date', group_keys=False).apply(Vwap)

替换为:

data = data.groupby('Date', group_keys=False).apply(Vwap)

Vwap函数返回的已经是追加了Vwap列的完整数据集,直接覆盖原data变量即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:36:08