pandas.DataFrame.bfill#

DataFrame.bfill(*, axis=None, inplace=False, limit=None, limit_area=None, downcast=_NoDefault.no_default)[源代码]#

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

Parameters:
axisSeries 为 {0 或 ‘index’},DataFrame 为 {0 或 ‘index’, 1 或 ‘columns’}

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

inplacebool,默认 False

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

<strong>limit</strong>int,默认 None

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

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

如果指定了 limit,连续的 NaNs 将根据此限制进行填充。

  • None:无填充限制。

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

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

在 2.2.0 版本加入.

downcastdict,默认为 None

一个 {项目->dtype} 的字典,用于在可能的情况下向下转换,或者字符串 ‘infer’,它将尝试向下转换为合适的等效类型(例如,如果可能,float64 转换为 int64)。

自 2.2.0 版本弃用.

Returns:
Series/DataFrame 或 None

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

Examples

对于 Series:

>>> 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