如果我有一些缺失的值,并且我想用前后值的平均值替换所有NaN,我该怎么做?。
我知道我可以pandas.DataFrame.fillna
使用method='ffill'
或method='bfill'
选项将NaN值替换为前一个值或后一个值,但我想将这些值的平均值应用于数据框而不是遍历行和列。
答案 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