使用下一个和上一个值填充时间序列中的缺失值

Filling Missing Values in a Time Series with Next and Prev Values

我正在尝试填充时间序列的缺失值,如下所示。我正在使用 Python3。

Week Rainfall(cm)
1    1 
2    NaN
3    9
4    10
5    11
6    NaN
7    NaN
8    14

我不想用平均值填充缺失值。如果我手动输入并填写 NaN 值,我可能会猜测第 2 周的降雨量为 5 厘米,第 6 周和第 7 周的降雨量分别为 12 厘米和 13 厘米。

我想让第 2 周如此,该值是第 1 周(1 厘米降雨量)和第 3 周(9 厘米降雨量)的平均值。 (例如,第 2 周降雨量为 5 厘米)。

不过这有点复杂...

在第 6 周和第 7 周,我想用 12 和 13 填充 NaN 值,因为如果你要在第 5 周(11 厘米降雨量)和第 8 周(14 厘米降雨量)之间画一条线) 您预计第 6 周和第 7 周的降雨量将分别为 12 厘米和 13 厘米。

有人能想出一种方法来按照我上面描述的方式填充 NaN 值吗?在过去的几个小时里,我一直在谷歌搜索这个问题,但似乎找不到任何东西。


你好像指的是linear interpolation的过程。如果 rf 是您的 DataFrame:

rf.interpolate()

   Week  Rainfall(cm)
0     1           1.0
1     2           5.0
2     3           9.0
3     4          10.0
4     5          11.0
5     6          12.0
6     7          13.0
7     8          14.0