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

如何在pandas DataFrame中为所有列计算沿行的滑动平均值

问题根因

你的代码错误来自apply函数的axis=1参数设置:
axis=1代表按行遍历数据,每次拿到的是单一行的所有列数值,你在长度为7的单行序列上做窗口大小为7的滑动平均,自然只有最后1个位置有计算结果,其他位置全为NaN,和你要的「按日期维度逐列做7日滑动平均」的需求完全不符。

正确代码

pandas的rolling方法默认按列(axis=0)计算,无需额外用apply遍历,直接调用即可:

# 若需对所有列计算7日滑动平均
df_a = df.rolling(7).mean()

如果只需要计算指定列的滑动平均:

cols= ['Name1','Name2','Name3','Name4','Name5','Name6','Name7']
df_a = df[cols].rolling(7).mean()

计算结果和你之前单列测试的效果一致:每列前6行返回NaN,第7行开始输出对应列的7日均值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 23:06:02