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

计算3年滚动平均触发ValueError:Columns must be same length as key

问题分析与解决

核心错误原因

你代码里的关键错误是列名未加引号:错误栈里的第4行写的是counts[t_average] = t.rolling(2).sum(),这里的t_average没有用单/双引号包裹,导致Pandas误将其当作数组/列索引变量处理,而非你要创建的新列名。这种情况下,Pandas会尝试批量设置多列,但你的值是单列的Series,长度不匹配,因此触发ValueError: Columns must be same length as key。

另外你提到要计算3年滚动平均,但当前代码里rolling(2)设置的窗口大小是2,这也需要根据你的时间周期调整。

修正后的代码

# 分组统计数量
counts = dfen.groupby(['From date', 'Policy category 1']).size().reset_index(name='counts')
# 计算3年滚动平均(window=3需匹配你的时间粒度,若按年分组则对应3年)
counts['t_average'] = counts['counts'].rolling(window=3, center=True).mean()

补充说明

  • 若需要居中滚动平均,务必在rolling()里加上center=True参数,默认是向前滚动计算。
  • 滚动窗口的window值要匹配时间粒度:比如From date按年分组时,window=3对应3年;若按月分组且要计算3年,需设置window=36,以此类推。

内容的提问来源于stack exchange,提问作者Isabel Parras Pancorbo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 09:35:35