我想在一个带有日期时间的 Dataframe 上使用pandas.DataFrame.rolling方法来聚合未来的值。看起来它只能在过去完成,对吗?
pandas.DataFrame.rolling
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
wkyowqbh2#
series.sort_index(ascending=False).rolling("2D").mean().sort_index()
你可以重新排序这系列.滚动窗口边缘关心系列顺序不是关于时间顺序.
2条答案
按热度按时间33qvvth11#
IIUC,你可以使用shift将你的计算移回过去。
输出:
wkyowqbh2#
你可以重新排序这系列.滚动窗口边缘关心系列顺序不是关于时间顺序.