Я хочу сделать интерполяцию котировок акций. У меня отсутствуют данные за один день (как в примере):
import numpy as np
import pandas as pd
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(
{'opening': [0.5, 1.3, np.NaN, 4, 5, 1],
'closing': [0, 1, np.NaN, 2, 10, 2]}, index=dates)
opening closing
2013-01-01 0.5 0.0
2013-01-02 1.3 1.0
2013-01-03 NaN NaN
2013-01-04 4.0 2.0
2013-01-05 5.0 10.0
2013-01-06 1.0 2.0
Мне нужен метод для эффективной интерполяции NaN, который closing
из 2013-01-02
равен opening
из 2013-01-03
и opening
из 2013-01-04
составляет closing
из 2013-01-03
. Требуемый вывод:
2013-01-01 0.5 0.0
2013-01-02 1.3 1.0
2013-01-03 1.0 4.0
2013-01-04 4.0 2.0
2013-01-05 5.0 10.0
2013-01-06 1.0 2.0
Я пытался использовать команду apply, но она содержит информацию только о текущей строке. Мне нужен доступ к предыдущему и следующему ряду.