用熊猫计算前滚平均值

时间:2019-04-19 07:17:40

标签: python pandas moving-average

我需要计算数据帧中的一些前滚平均值,而实际上不知道从哪里开始。

我知道我是否想提前10天选择一个单元格,说我会df.shift(-10),但是我想做的是计算提前10天到15天之间的平均值。

所以我的想法是df.rolling(-10,-15).mean(),如果我试图只计算时间上的移动平均值df.rolling(15,10).mean()会很好,我做了考虑只计算这样的平均值,然后以某种方式移动数据。

任何帮助都会很棒

非常感谢

2 个答案:

答案 0 :(得分:2)

您可以计算未来5天的滚动平均值,然后shift再计算10个周期。由于rolling中的负值是不允许的,因此您可以反转轴,向后计算,然后再次反转(请参见How to use Pandas rolling_* functions on a forward-looking basis):

df = pd.DataFrame(np.random.rand(100, 2))
df[::-1].rolling(5).mean()[::-1].shift(-10)

答案 1 :(得分:0)

以上答案看起来不正确。恕我直言,您不会后退和转移。

df = pd.DataFrame(np.random.randint(low=0, high=10, size=(100, 2))) # int easier to interpret
df[::-1].rolling(window=5, min_periods=1).mean()[::-1]

这也可以,但是您丢失了最后4个值:

df.rolling(window=5, min_periods=1).mean().shift(-5)

任意移动(偏移)的滚动窗口的更困难的问题可能需要以某种方式使用.shift()。