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 值保持不變,這是因為沒有可用的前一個值來執行前向填充操作。

更新於: 2022-03-07

2K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告