Pandas滚动窗口意味着未来

ffscu2ro  于 2023-03-28  发布在  其他
关注(0)|答案(2)|浏览(94)

我想在一个带有日期时间的 Dataframe 上使用pandas.DataFrame.rolling方法来聚合未来的值。看起来它只能在过去完成,对吗?

33qvvth1

33qvvth11#

IIUC,你可以使用shift将你的计算移回过去。

df = pd.DataFrame({'Data':np.arange(0,11,1)},index=pd.date_range('2018-07-23',periods=11))

df['rolling'] = df.rolling('2D').mean().shift(-1)

print(df)

输出:

Data  rolling
2018-07-23     0      0.5
2018-07-24     1      1.5
2018-07-25     2      2.5
2018-07-26     3      3.5
2018-07-27     4      4.5
2018-07-28     5      5.5
2018-07-29     6      6.5
2018-07-30     7      7.5
2018-07-31     8      8.5
2018-08-01     9      9.5
2018-08-02    10      NaN
wkyowqbh

wkyowqbh2#

series.sort_index(ascending=False).rolling("2D").mean().sort_index()

你可以重新排序这系列.滚动窗口边缘关心系列顺序不是关于时间顺序.

相关问题