如何在 pandas 数据帧上设置滚动
how to set up rolling on a pandas dataframe
我使用以下源代码在数据帧上滚动创建了移动平均线
ma = produksi.price.rolling(window=3).mean()
hasil = hasil.append(ma)
mape= abs((produksi.price-ma)/produksi.price)
[![在此处输入图片描述][1]][1]
但是移动平均的结果是这样的,计算是正确的,但是位置不符合预期
我想要这样的结果
[![在此处输入图片描述][2]][2]
计算第四条数据预测中的误差值
[1]: https://i.stack.imgur.com/d8FBf.png
[2]: https://i.stack.imgur.com/CalcT.png
我认为如果将 closed='left'
参数添加到滚动方法中,您将获得所需的结果。
df = pd.DataFrame({'price': [3290, 3380, 3380, 3360, 3340, 3290, 3300]})
df['mean'] = df['price'].rolling(window=3, closed='left').mean()
输出
print(df)
price mean
0 3290 NaN
1 3380 NaN
2 3380 NaN
3 3360 3350.000000
4 3340 3373.333333
5 3290 3360.000000
6 3300 3330.000000
我使用以下源代码在数据帧上滚动创建了移动平均线
ma = produksi.price.rolling(window=3).mean()
hasil = hasil.append(ma)
mape= abs((produksi.price-ma)/produksi.price)
[![在此处输入图片描述][1]][1]
但是移动平均的结果是这样的,计算是正确的,但是位置不符合预期
我想要这样的结果 [![在此处输入图片描述][2]][2]
计算第四条数据预测中的误差值 [1]: https://i.stack.imgur.com/d8FBf.png [2]: https://i.stack.imgur.com/CalcT.png
我认为如果将 closed='left'
参数添加到滚动方法中,您将获得所需的结果。
df = pd.DataFrame({'price': [3290, 3380, 3380, 3360, 3340, 3290, 3300]})
df['mean'] = df['price'].rolling(window=3, closed='left').mean()
输出
print(df)
price mean
0 3290 NaN
1 3380 NaN
2 3380 NaN
3 3360 3350.000000
4 3340 3373.333333
5 3290 3360.000000
6 3300 3330.000000