pandas.Series.bfill #
- 系列。bfill ( * , axis = None , inplace = False , limit = None , limit_area = None , downcast = _NoDefault.no_default ) [来源] #
通过使用下一个有效观察来填补空白来填充 NA/NaN 值。
- 参数:
- 轴{0 或 'index'} 对于 Series,{0 或 'index', 1 或 'columns'} 对于 DataFrame
填充缺失值的轴。对于系列 ,此参数未使用,默认为 0。
- inplace布尔值,默认 False
如果为 True,则就地填写。注意:这将修改该对象上的任何其他视图(例如,DataFrame 中列的无复制切片)。
- limit int,默认无
如果指定了 method,则这是要向前/向后填充的连续 NaN 值的最大数量。换句话说,如果存在连续 NaN 数量超过此数量的间隙,则只会部分填充。如果未指定 method,则这是沿整个轴填充 NaN 的最大条目数。如果不是 None,则必须大于 0。
- limit_area { None , 'inside', 'outside'}, 默认 None
如果指定了 limit,则连续的 NaN 将用此限制填充。
None
:无填充限制。'inside':仅填充由有效值包围的 NaN(插值)。
'outside':仅填充有效值之外的 NaN(推断)。
2.2.0 版本中的新增内容。
- downcast dict,默认为 None
如果可能的话,要向下转换的 item->dtype 的字典,或者字符串“infer”,它将尝试向下转换为适当的相等类型(例如,如果可能,将 float64 转换为 int64)。
自 2.2.0 版本起已弃用。
- 返回:
- 系列/数据框或无
缺失值已填充的对象,如果 则为 None
inplace=True
。
例子
对于系列:
>>> 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
使用数据框:
>>> 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