pandas.DataFrame.bfill#
- DataFrame.bfill(*, axis=None, inplace=False, limit=None, limit_area=None)[源代码]#
使用下一个有效观测值来填充 NA/NaN 值。
- 参数:
- 轴{0 或 ‘index’} 用于 Series, {0 或 ‘index’, 1 或 ‘columns’} 用于 DataFrame
沿其填充缺失值的轴。对于 Series,此参数未使用并默认为 0。
- inplacebool, 默认 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.
- 返回:
- 系列/数据帧或无
如果
inplace=True
,则用缺失值填充的对象或 None。
参见
DataFrame.ffill
用最后一个有效观测值填充 NA/NaN 值以传播到下一个有效值。
例子
对于系列:
>>> s = pd.Series([1, None, None, 2]) >>> s.bfill() 0 1.0 1 2.0 2 2.0 3 2.0 dtype: float64 >>> s.bfill(limit=1) 0 1.0 1 NaN 2 2.0 3 2.0 dtype: float64
使用 DataFrame:
>>> df = pd.DataFrame({"A": [1, None, None, 4], "B": [None, 5, None, 7]}) >>> df A B 0 1.0 NaN 1 NaN 5.0 2 NaN NaN 3 4.0 7.0 >>> df.bfill() A B 0 1.0 5.0 1 4.0 5.0 2 4.0 7.0 3 4.0 7.0 >>> df.bfill(limit=1) A B 0 1.0 5.0 1 NaN 5.0 2 4.0 7.0 3 4.0 7.0