如果要按1行移位,请使用:
df["DELAY_LAST2HOURS"] = df["DELAY"].rolling("2H").mean().shift().fillna(0)
print (df)
DELAY DELAY_LAST2HOURS
TIME
2016-01-01 06:30:00 0 0.0
2016-01-01 07:05:00 2 0.0
2016-01-01 08:10:00 7 1.0
2016-01-01 10:40:00 0 3.0
2016-01-01 11:00:00 1 0.0
2016-01-01 11:35:00 2 0.5
2016-01-01 14:10:00 2 1.0
2016-01-02 13:50:00 2 2.0
2016-01-02 14:05:00 1 2.0
2016-01-02 14:50:00 4 1.5
编辑:0.24.0解决方案-参数
fill_value
shift
:
df["DELAY_LAST2HOURS"] = df["DELAY"].rolling("2H").mean().shift(fill_value=0)
print (df)
DELAY DELAY_LAST2HOURS
TIME
2016-01-01 06:30:00 0 0.0
2016-01-01 07:05:00 2 0.0
2016-01-01 08:10:00 7 1.0
2016-01-01 10:40:00 0 3.0
2016-01-01 11:00:00 1 0.0
2016-01-01 11:35:00 2 0.5
2016-01-01 14:10:00 2 1.0
2016-01-02 13:50:00 2 2.0
2016-01-02 14:05:00 1 2.0
2016-01-02 14:50:00 4 1.5