Dataframe 列插值由另一列的值加权

Dataframe column interpolation weigthed by values of another column

我有以下数据框:

df = pd.DataFrame(
    {
        "A": [1, 4.5, 4.6, 4.7, 5.6, 6.8],
        "B": [0.25, np.nan, np.nan, 4, 12.2, 14.4],
    }
)
pd
    A   B
0   1.0 0.25
1   4.5 NaN
2   4.6 NaN
3   4.7 4.00
4   5.6 12.20
5   6.8 14.40

我想插入由 A 列的值加权的 B 列的缺失值。

df["B"][1] = ((df["B"][3]-df["B"][0])/(df["A"][3]-df["A"][0]))*(df["A"][1]-df["A"][0])+df["B"][0] --> 3.797297
df["B"][2] = ((df["B"][3]-df["B"][0])/(df["A"][3]-df["A"][0]))*(df["A"][2]-df["A"][0])+df["B"][0] --> 3.898649

有没有办法使用插值函数来实现?

谢谢。 保罗.

尝试 interpolate:

# interpolate with option `method='index'` uses index as scale
# so we set `A` as index first
df['B'] = df.set_index('A')['B'].interpolate('index').values

输出:

     A          B
0  1.0   0.250000
1  4.5   3.797297
2  4.6   3.898649
3  4.7   4.000000
4  5.6  12.200000
5  6.8  14.400000