pandas.DataFrame.ffill#

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

用最后一个有效观测值填充 NA/NaN 值以传播到下一个有效值。

参数:
{0 或 ‘index’} 用于 Series,{0 或 ‘index’, 1 或 ‘columns’} 用于 DataFrame

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

inplace布尔值, 默认为 False

如果为真,就地填充。注意:这将修改此对象的任何其他视图(例如,DataFrame中列的非复制切片)。

限制int, 默认为 None

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

limit_area : {None, ‘inside’, ‘outside’}, 默认 None{}

如果指定了限制,连续的 NaN 将被此限制填充。

  • None: 无填充限制。

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

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

Added in version 2.2.0.

返回:
Series/DataFrame 或 None

如果 inplace=True,则用缺失值填充的对象或为 None。

参见

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