Pandas 中 series.ffill() 方法是如何工作的?
Pandas 中 series.ffill() 方法的工作方式等同於 series.fillna() 方法,其中“method = ffill”,或者我們可以說 series.ffill() 是前向填充方法的同義詞。
series.ffill() 方法使用前向填充方法替換給定序列物件中的 Nan 或 NA 值。此方法的引數包括 inplace、axis、limit 和 downcast。
它沒有 value 和 method 這樣的引數。因為它使用序列元素作為替換值,並使用前向填充方法填充缺失值。
示例 1
在下面的示例中,我們將 ffill() 方法應用於包含物件資料和一些 Nan 值的序列物件,並且預設引數沒有更改。
# importing pandas package import pandas as pd import numpy as np # create a series s = pd.Series(["a", np.nan, np.nan, "b", "c", np.nan, "d", "e"]) print(s) # replace Missing values result = s.ffill() print('Result:') print(result)
輸出
輸出如下所示:
0 a 1 NaN 2 NaN 3 b 4 c 5 NaN 6 d 7 e dtype: object Result: 0 a 1 a 2 a 3 b 4 c 5 c 6 d 7 e dtype: object
在上面的輸出塊中,我們可以注意到序列物件的缺失值已成功更新為上一行的值。
示例 2
以下示例將 inplace 引數指定為 True,以便將修改應用於原始序列物件。
# importing pandas package import pandas as pd import numpy as np # create a series s = pd.Series([np.nan, np.nan, 27, 61, np.nan, 93, np.nan, 68, 70, np.nan]) print(s) # replace Missing values s.ffill(inplace=True) print('Result:') print(s)
解釋
如果您不更改 inplace 引數的預設值,則它將建立一個新的序列,其中包含更新後的值作為結果,並且此 inplace 引數的預設值為 False。
輸出
輸出如下所示:
0 NaN 1 NaN 2 27.0 3 61.0 4 NaN 5 93.0 6 NaN 7 68.0 8 70.0 9 NaN dtype: float64 Result: 0 NaN 1 NaN 2 27.0 3 61.0 4 61.0 5 93.0 6 93.0 7 68.0 8 70.0 9 70.0 dtype: float64
我們可以注意到索引位置 0 和 1 處的 Nan 值保持不變,這是因為沒有可用的前一個值來執行前向填充操作。
廣告