Pandas series.ffill() 方法是如何工作的
pandas series.ffill() 方法的工作方式类似于 series.fillna() 方法中的 “method = ffill” 函数,或者我们可以说 series.ffill() 是 forward fill 方法的同义词。
series.ffill() 方法使用前向填充方法,将给定系列对象中的 NaN 或 NA 值替换掉。该方法的参数包括 inplace,axis,limit 和 downcast。
它不像 value 和 method 这样的参数。因为它采用系列元素作为替换值,并使用前向填充方法填充缺失值。
示例1
在下面的示例中,我们对具有一些 NaN 值的对象数据的系列对象应用了 ffill() 方法,并且默认参数没有改变。
# 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值保持不变,这是因为没有可用的前一个值来执行向前填充操作。