У меня есть временной ряд данных в DataFrame, в котором отсутствуют значения как в начале, так и в конце выборки.
Я пытаюсь заполнить отсутствующие значения в конце , увеличивая его, используя простой процесс AR (1).
Например,
X (t + 1) - X (t) = 0,5 * [X (t) -X (t-1)]
A = [np.nan, np.nan, 5.5, 5.7, 5.9, 6.1, 6.0, 5.9, np.nan, np.nan, np.nan]
df = pd.DataFrame({'A':A}, index = pd.date_range(start = '2010',
periods = len(A),
freq = "QS"))
A
2010-01-01 5.5
2010-04-01 5.7
2010-07-01 5.9
2010-10-01 6.1
2011-01-01 6.0
2011-04-01 5.9
2011-07-01 NaN
2011-10-01 NaN
2012-01-01 NaN
Что я хочу:
A
2010-01-01 NaN
2010-04-01 NaN
2010-07-01 5.5000
2010-10-01 5.7000
2011-01-01 5.9000
2011-04-01 6.1000
2011-07-01 6.0000
2011-10-01 5.9000
2012-01-01 5.8500
2012-04-01 5.8250
2012-07-01 5.8125
Достать следующую запись в серии относительно легко:
NEXT = 0.5*df.dropna().diff().iloc[-1] + df.dropna().iloc[-1]
Нодобавление этого в DataFrame хорошим способом доставляет мне некоторые неприятности.