如何用pandas DataFrame中前后值的平均值替换NaNs?

时间:2016-02-18 21:19:09

标签: python python-3.x pandas

如果我有一些缺失的值,并且我想用前后值的平均值替换所有NaN,我该怎么做?。

我知道我可以pandas.DataFrame.fillna使用method='ffill'method='bfill'选项将NaN值替换为前一个值或后一个值,但我想将这些值的平均值应用于数据框而不是遍历行和列。

1 个答案:

答案 0 :(得分:3)

试试DataFrame.interpolate()。熊猫文档的例子:

In [65]: df = pd.DataFrame({'A': [1, 2.1, np.nan, 4.7, 5.6, 6.8],
   ....:                    'B': [.25, np.nan, np.nan, 4, 12.2, 14.4]})
   ....: 

In [66]: df
Out[66]: 
     A      B
0  1.0   0.25
1  2.1    NaN
2  NaN    NaN
3  4.7   4.00
4  5.6  12.20
5  6.8  14.40

In [67]: df.interpolate()
Out[67]: 
     A      B
0  1.0   0.25
1  2.1   1.50
2  3.4   2.75
3  4.7   4.00
4  5.6  12.20
5  6.8  14.40