我有一个在各个地方缺失值的数组。在熊猫/ Python中连续插入多个nan?
import numpy as np
import pandas as pd
x = np.arange(1,10).astype(float)
x[[0,1,6]] = np.nan
df = pd.Series(x)
print(df)
0 NaN
1 NaN
2 3.0
3 4.0
4 5.0
5 6.0
6 NaN
7 8.0
8 9.0
dtype: float64
对于每个NaN
,我想利用价值出发了,由两个分的它。然后传播完成,为下一个连续NaN
,所以我将结束:
0 0.75
1 1.5
2 3.0
3 4.0
4 5.0
5 6.0
6 4.0
7 8.0
8 9.0
dtype: float64
我试过df.interpolate()
,但似乎不连续的NaN的工作。
即使'interpolate()'确实有效,它也不会做你所需要的。顺便说一下,你的“插值”规则看起来很奇怪。你确定这是你想要做到的吗? –
@ Ev.Kounis我不完全确定这是我想要的方法,但现在我只是复制别人对他们的数据所做的一切。然后我会找出一个更好的方法。实际上,我应该对数据进行曲线拟合,以预测缺失值。 – BobbyJohnsonOG
通常做的是假设缺少的段是直线,并且基于'NaN'之前和之后最接近的可用点计算出一个值。这就是所谓的线性插值(请参阅https://en.wikipedia.org/wiki/Linear_interpolation) –