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