![](/img/trans.png)
[英]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.