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