Python 有没有办法用前一行的值覆盖数据帧中的Nan值?

Python 有没有办法用前一行的值覆盖数据帧中的Nan值?,python,pandas,dataframe,nan,Python,Pandas,Dataframe,Nan,我正在使用一个名为“tabla_combinada”的数据帧,它看起来像这样: 所用数据帧的结构: 我试图做的是去掉“End Meter”列中的Nan值,并将其替换为前一行中同一列的值。我尝试实现以下代码: counter=0 for x in tabla_combinada['End Meter']: if math.isnan(x): x = tabla_combinada['End Meter'][counter-1] tabla_combinad

我正在使用一个名为“tabla_combinada”的数据帧,它看起来像这样:

所用数据帧的结构:

我试图做的是去掉“End Meter”列中的Nan值,并将其替换为前一行中同一列的值。我尝试实现以下代码:

counter=0
for x in tabla_combinada['End Meter']:
    if math.isnan(x):
        x = tabla_combinada['End Meter'][counter-1]
        tabla_combinada['End Meter'][counter-1] = tabla_combinada['Start Meter'][counter]       
    counter = counter + 1
这对我不起作用,首先我得到以下警告:

A value is trying to be set on a copy of a slice from a DataFrame.
但让我感到困扰的是,我在数据帧中根本没有得到任何变化。我确实理解警告的原因,我怀疑这不是解决问题的最佳方法。我想有一个正确的方法可以使用loc来实现这一点,但是我无法找到如何告诉程序用前一行的值替换Nan。
很抱歉提出了这么长的问题,请提前感谢。

您需要做的就是:

tabla_combinada['End Meter'].fillna(method='ffill')

这将向前传播非空值

只是为了澄清,数据帧的结构在下面的图像链接中。尽管如此,它还是由四根柱子组成:科德乌特拉莫柱、起点米柱、终点米柱和克拉苏特拉扎多柱。它们都包含浮点值,但我提到的Nan值除外。
tabla_combinada['End-Meter']=tabla_combinada['End-Meter'].ffill()
在您的示例中,您使用的是另一列中的值,而在文本中,您说要从同一列中获取上一个值,这是哪一个?实际上,我正试图像nferreira78建议的那样向前传播“结束米”中的Nan值,然后用第n行的“开始米”值替换第n-1行的“结束米”值。