繁体   English   中英

有没有办法用前一行的值覆盖 pandas dataframe 中的 Nan 值?

[英]Is there a way to overwrite Nan values in a pandas dataframe with values of the previous row?

我正在使用一个名为“tabla_combinada”的 dataframe,如下所示:

使用的dataframe的结构:

在此处输入图像描述

我试图做的是去掉“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.

但让我烦恼的是,我在 dataframe 中没有任何变化。 我确实了解警告的原因,并且我怀疑这不是解决问题的最佳方法。 我想有一种正确的方法可以使用 loc 执行此操作,但我不知道如何告诉程序将 Nan 替换为前一行的值。 抱歉,这个问题很长,并在此先感谢。

您需要做的就是:

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

这将向前传播非空值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM