Настройка фрейма данных:
x = [0,1,3,4,7,9,11,122,123,128]
y = [2,8,12,np.NaN, 22, 31, 34, np.NaN, 43, 48]
df = pd.DataFrame({"x":x, "y":y})
print(df)
x y
0 0 2.0
1 1 8.0
2 3 12.0
3 4 NaN
4 7 22.0
5 9 31.0
6 11 34.0
7 122 NaN
8 123 43.0
9 128 48.0
Установите для столбца 'x' индекс:
df = df.set_index('x')
Затем установите метод в interplote на 'index'.
df.y = df.y.interpolate(method='index')
В результате:
df
y
x
0 2.000000
1 8.000000
3 12.000000
4 14.500000
7 22.000000
9 31.000000
11 34.000000
122 42.919643
123 43.000000
128 48.000000