Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何用数据帧中前后值的平均值替换NaN?_Python_Python 3.x_Pandas - Fatal编程技术网

Python 如何用数据帧中前后值的平均值替换NaN?

Python 如何用数据帧中前后值的平均值替换NaN?,python,python-3.x,pandas,Python,Python 3.x,Pandas,如果我有一些缺少的值,并且我想用前面和后面的值的平均值替换所有NaN,我该怎么做呢 我知道我可以使用pandas.DataFrame.fillna和method='ffill'或method='bfill'选项将NaN值替换为前面或后面的值,但是我希望在数据帧上应用这些值的平均值,而不是在行和列上迭代。试试看。熊猫文档中的示例: In [65]: df = pd.DataFrame({'A': [1, 2.1, np.nan, 4.7, 5.6, 6.8], ....:

如果我有一些缺少的值,并且我想用前面和后面的值的平均值替换所有NaN,我该怎么做呢

我知道我可以使用
pandas.DataFrame.fillna
method='ffill'
method='bfill'
选项将NaN值替换为前面或后面的值,但是我希望在数据帧上应用这些值的平均值,而不是在行和列上迭代。

试试看。熊猫文档中的示例:

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

谢谢你的回答。我想知道如何计算两个连续的NaN。我在网上找到了点(例如(x1,y1)和(x2,y2))的线性插值公式。在DataFrame.interplate()的描述中,默认情况下会逐列应用它。但是没有关于如何计算这种情况的更多细节,对于默认插值方法“线性”,索引被忽略。每个连续NaN的增量计算为已知值之间的差值除以步数。在上述示例的B列中,已知值的差值为4.00-0.25=3.75。步骤数是一行中的NAN数+1=2+1=3。增量为3.75/3=1.25。因此,第一个Nan为0.25+1.25=1.50,第二个Nan为1.50+1.25=2.75。