簡體   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