我正在使用内置的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循环和拆分时间序列?