[英]Is there a way in Pandas to use previous row values in dataframe.apply where previous values are also calculated in the apply?
[英]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.