У меня есть DataFrame, который выглядит следующим образом:
ds y
0 2017-02-07 0.154941
1 2017-02-08 0.110595
2 2017-02-09 0.044022
3 2017-02-10 0.283902
4 2017-02-11 0.121570
5 2017-02-12 0.000000
6 2017-02-13 0.020265
7 2017-02-14 0.053577
8 2017-02-15 0.080842
9 2017-02-16 0.022043
Я сейчас пытаюсь создать новый столбец 'next_3', который будет суммой значений y
в течение следующих 3 дней послетекущий день.
Я добиваюсь этого, используя:
df['next_3'] = df['y'].shift(-3).rolling(3).sum()
, который производит это:
ds y label
0 2017-02-07 0.154941 NaN
1 2017-02-08 0.110595 NaN
2 2017-02-09 0.044022 0.405472
3 2017-02-10 0.283902 0.141836
4 2017-02-11 0.121570 0.073842
5 2017-02-12 0.000000 0.154685
6 2017-02-13 0.020265 0.156462
7 2017-02-14 0.053577 NaN
8 2017-02-15 0.080842 NaN
9 2017-02-16 0.022043 NaN
Я понимаю, почему последние 3 строки имеют значения NaN
поскольку следующие 3 строки недоступны, но почему первые 2 строки имеют значения NaN
, когда эти значения могут быть рассчитаны?
Как я могу исправить мой вызов shift().rolling().sum()
, чтобы первые две строкитакже рассчитаны?