用前后的平均值填充包含 NaN 的单元格

Wil*_*e D 3 python pandas scikit-learn

我想用缺失值之前和之后的单元格的平均值填充熊猫数据框中的缺失值。因此,如果它是 [1, NaN, 3],NaN 值将是 2,因为 (1 + 3)/2。我找不到任何方法来使用 Pandas 或 Scikit-learn 来做到这一点。有没有办法做到这一点?

Vai*_*ali 7

考虑这个数据框

df = pd.DataFrame({'val': [1,np.nan, 4, 5, np.nan, 10]})

    val
0   1.0
1   NaN
2   4.0
3   5.0
4   NaN
5   10.0
Run Code Online (Sandbox Code Playgroud)

您可以使用 fillna 和 shift() 来获得所需的输出

df.val = df.val.fillna((df.val.shift() + df.val.shift(-1))/2)
Run Code Online (Sandbox Code Playgroud)

你得到

    val
0   1.0
1   2.5
2   4.0
3   5.0
4   7.5
5   10.0
Run Code Online (Sandbox Code Playgroud)