pandas.DataFrame.ffill#

DataFrame.ffill(*, axis=None, inplace=False, limit=None, limit_area=None)[源代码]#

通过传播最后一个有效观测值来填充 NA/NaN 值。

参数:
axis{0 or ‘index’} for Series, {0 or ‘index’, 1 or ‘columns’} for DataFrame

沿哪个轴填充缺失值。对于 Series,此参数未使用,默认为 0。

inplacebool, default False

如果为 True,则就地填充。注意:这将修改对此对象进行的任何其他视图(例如,DataFrame 列的无副本切片)。

limitint, default None

如果指定了 method,这是向前/向后填充的连续 NaN 值的最大数量。换句话说,如果存在一个具有超过此数量的连续 NaN 的间隙,它将只被部分填充。如果未指定 method,这是沿整个轴填充 NaN 的条目的最大数量。如果不是 None,则必须大于 0。

limit_area{{None, ‘inside’, ‘outside’}}, default None

如果指定了 limit,则将在此限制条件下填充连续的 NaN。

  • None:无填充限制。

  • ‘inside’:仅填充被有效值包围的 NaN(插值)。

  • ‘outside’:仅填充有效值之外的 NaN(外插)。

版本 2.2.0 中添加。

返回:
Series/DataFrame

填充了缺失值后的对象。

另请参阅

DataFrame.bfill

使用下一个有效观测值填充 NA/NaN 值以填补空白。

示例

>>> df = pd.DataFrame(
...     [
...         [np.nan, 2, np.nan, 0],
...         [3, 4, np.nan, 1],
...         [np.nan, np.nan, np.nan, np.nan],
...         [np.nan, 3, np.nan, 4],
...     ],
...     columns=list("ABCD"),
... )
>>> df
     A    B   C    D
0  NaN  2.0 NaN  0.0
1  3.0  4.0 NaN  1.0
2  NaN  NaN NaN  NaN
3  NaN  3.0 NaN  4.0
>>> df.ffill()
     A    B   C    D
0  NaN  2.0 NaN  0.0
1  3.0  4.0 NaN  1.0
2  3.0  4.0 NaN  1.0
3  3.0  3.0 NaN  4.0
>>> ser = pd.Series([1, np.nan, 2, 3])
>>> ser.ffill()
0   1.0
1   1.0
2   2.0
3   3.0
dtype: float64