Метод DataFrame.rolling принимает параметр min_periods
, который по умолчанию равен размеру окна. До тех пор, пока не будет накоплено много не пропущенных значений, при скользящем расчете значения будут пропущены. Все ваши значения отсутствуют, поэтому при вычислении никогда не будут накапливаться 2 значения.
Для этого случая только для NaN вы можете просто установить параметр на 0.
pd.Series([np.NaN, np.NaN]).rolling(2, min_periods=0).sum()
# 0 0.0
# 1 0.0
Но это также изменить поведение для ряда, в котором присутствуют первые два значения . Он оставит первое значение на месте, не пустым, чтобы указать, что в скользящей сумме еще не было 2 значений.
pd.Series([1, 2]).rolling(2).sum()
# 0 NaN
# 1 3.0
pd.Series([1, 2]).rolling(2, min_periods=0).sum()
# 0 1.0
# 1 3.0
Чтобы избежать этого, мне нужно знать больше о вашем сценарии использования.