如何在长时间序列中使用熊猫插值函数而不会出现内存错误?

时间:2019-06-10 12:39:09

标签: pandas out-of-memory interpolation

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

0 个答案:

没有答案