我想在考虑周期性边界条件的情况下进行移动平均。我尽量把自己说清楚
我有以下数据:
Date,Q
1989-01-01 00:00,0
1989-01-02 00:00,1
1989-01-03 00:00,4
1989-01-04 00:00,6
1989-01-05 00:00,8
1989-01-06 00:00,10
1989-01-07 00:00,11
我想计算移动平均值,考虑3个数据:下一个和上一个。 特别是,我希望在“滚动”函数中使用相同的选项,其中第一个数据(python框架中的0)能够考虑最后一个,反之亦然,最后一个也是第一个。这将允许我有一种周期性的边界条件
事实上,我已经应用了以下内容: 首先,我阅读数据帧
df = pd.read_csv(fname, index_col = 0, parse_dates=True)
然后我将“滚动”应用为
df['Q'] = pd.Series(df["Q"].rolling(3, center=True).mean())
然而,我得到了以下结果:
Date
1989-01-01 NaN
1989-01-02 1.66
1989-01-03 3.66
1989-01-04 6
1989-01-05 8
1989-01-06 9.66
1989-01-07 NaN
我知道我可以应用“min_periods=1”选项,但这不是我想要的。事实上,很明显,第二行的结果是正确的:
1.66 = (0+1+4)/3
但是,我希望在第一行中有这样的结果:
(0+1+11)/3
正如您所注意到的,数字11是最后一行的值。同样,我希望在最后一行:
(10+11+0)/3
其中0是第一行的值
你有什么建议或想法吗
谢谢
迭戈
我只需要复制第一个之前的值和最后一个之后的值,对数据帧进行排序,然后进行滚动平均。然后,删除附加值就足够了:
正如预期的那样:
相关问题 更多 >
编程相关推荐