Я использую встроенную функцию интерполяции серии Pandas для линейной интерполяции пропущенных значений (nans) во временном ряду. Тем не менее, для длинных временных рядов (N = 10 ^ 9) код никогда не прекращает работу и в конечном итоге дает сбой ..
Очень простой пример:
N = 10**6
s = pd.Series(np.arange(N))
s[::10] = np.nan # Set every 10th value to nan
s = s.interpolate() # Linearly interpolate nans
Для N = 10 ^ 6 шаг интерполяции занимает 0,06 секунды, для N = 10 ^ 7 - 0,6 секунды, для N = 10 ^ 8 - 6 секунд.
Проблема начинается, когда N увеличивается до 10 ^ 9 (это примерно длина временного ряда, с которым я работаю). Теперь мой компьютер просто выходит из строя ... Я предполагаю, что это какая-то ошибка памяти, не зная много о внутренней работе компьютеров.
Есть ли способ избежать этого, не создавая медленного цикла for и не разбивая временные ряды?