我想用缺失值前后的单元格的平均值来填充 pandas 数据框中的缺失值。因此,如果它是 [1, NaN, 3],则 NaN 值将为 2,因为 (1 + 3)/2。我找不到任何方法来使用 Pandas 或 Scikit-learn 来做到这一点。有什么办法吗?
最佳答案
考虑这个数据框
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
您可以将 fillna 与 shift() 一起使用以获得所需的输出
df.val = df.val.fillna((df.val.shift() + df.val.shift(-1))/2)
你得到
val
0 1.0
1 2.5
2 4.0
3 5.0
4 7.5
5 10.0
关于python - 用前后的平均值填充包含 NaN 的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44032771/