首页 > 解决方案 > 如何用 pandas 中 ffill() 和 bfill() 的平均值替换缺失值?

问题描述

这是一个示例数据框,它包含NA

    x    y    z      datetime
0   2    3    4    02-02-2019
1   NA   NA   NA   03-02-2019
2   3    5    7    04-02-2019
3   NA   NA   NA   05-02-2019
4   4    7    9    06-02-2019

现在,我想填充这些NA值,我可以使用ffill()或来做到这一点bfill()。但是如果想应用ffill() & bfill(). 那我该怎么做呢?

直接平均值df = (df.fill() + df.bfill()) / 2不起作用,因为datetime column.

最终数据框应如下所示:

      x    y     z      datetime
0     2    3     4    02-02-2019
1   2.5    4   5.5    03-02-2019
2     3    5     7    04-02-2019
3   3.5    6     8    05-02-2019
4     4    7     9    06-02-2019

标签: python-3.xpandasdataframenamissing-data

解决方案


检查df.interpolate

df.interpolate()

     x    y    z    datetime
0  2.0  3.0  4.0  02-02-2019
1  2.5  4.0  5.5  03-02-2019
2  3.0  5.0  7.0  04-02-2019
3  3.5  6.0  8.0  05-02-2019
4  4.0  7.0  9.0  06-02-2019

推荐阅读