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

标签 python pandas scikit-learn

我想用缺失值前后的单元格的平均值来填充 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/

相关文章:

python - 无法使用 pandas 将 csv 文件中的字符串转换为 int

python - 如何使用 join 来填充列的缺失值 - Python Pandas?

python - 将列的百分比设置为 0( Pandas )

python - 将列级别由内而外

python - Sci-Kit 机器学习程序的结果代表什么?

python - numpy 和 sklearn PCA 返回不同的协方差向量

python - 如何在 OpenShift 中将 MySQL Cartridge 连接到 Django

python - 如何读取API输出的多个词典列表?

python - 允许用户在 tkinter askopenfilename() 中键入路径

python - scikit-learn 决策树节点深度