pandas.core.resample.Resampler.bfill#

Resampler.bfill(limit=None)[源代码]#

向后填充重新采样数据中的新缺失值。

在统计学中,补偿是用替换值替换缺失数据的过程 [1]. 重采样数据时,可能会出现缺失值(例如,当重采样频率高于原始频率时)。向后填充将用原始序列中的下一个值替换重新采样数据中出现的NaN值。不会修改原始数据中存在的缺失值。

参数
limit整型,可选

要填充的值的数量限制。

退货
系列,DataFrame

具有向后填充的NaN值的上采样系列或DataFrame。

参见

bfill

回填的别名。

fillna

使用指定的方法填充NaN值,该方法可以是“回填”。

nearest

从中心开始用最近的邻居填充NaN值。

ffill

正向填充NaN值。

Series.fillna

使用指定的方法填充系列中的NaN值,该方法可以是“回填”。

DataFrame.fillna

使用指定的方法填充DataFrame中的NaN值,该方法可以是“BackFill”。

参考文献

1

https://en.wikipedia.org/wiki/Imputation_(statistics)

示例

对系列进行重采样:

>>> s = pd.Series([1, 2, 3],
...               index=pd.date_range('20180101', periods=3, freq='h'))
>>> s
2018-01-01 00:00:00    1
2018-01-01 01:00:00    2
2018-01-01 02:00:00    3
Freq: H, dtype: int64
>>> s.resample('30min').bfill()
2018-01-01 00:00:00    1
2018-01-01 00:30:00    2
2018-01-01 01:00:00    2
2018-01-01 01:30:00    3
2018-01-01 02:00:00    3
Freq: 30T, dtype: int64
>>> s.resample('15min').bfill(limit=2)
2018-01-01 00:00:00    1.0
2018-01-01 00:15:00    NaN
2018-01-01 00:30:00    2.0
2018-01-01 00:45:00    2.0
2018-01-01 01:00:00    2.0
2018-01-01 01:15:00    NaN
2018-01-01 01:30:00    3.0
2018-01-01 01:45:00    3.0
2018-01-01 02:00:00    3.0
Freq: 15T, dtype: float64

对缺少值的DataFrame进行重新采样:

>>> df = pd.DataFrame({'a': [2, np.nan, 6], 'b': [1, 3, 5]},
...                   index=pd.date_range('20180101', periods=3,
...                                       freq='h'))
>>> df
                       a  b
2018-01-01 00:00:00  2.0  1
2018-01-01 01:00:00  NaN  3
2018-01-01 02:00:00  6.0  5
>>> df.resample('30min').bfill()
                       a  b
2018-01-01 00:00:00  2.0  1
2018-01-01 00:30:00  NaN  3
2018-01-01 01:00:00  NaN  3
2018-01-01 01:30:00  6.0  5
2018-01-01 02:00:00  6.0  5
>>> df.resample('15min').bfill(limit=2)
                       a    b
2018-01-01 00:00:00  2.0  1.0
2018-01-01 00:15:00  NaN  NaN
2018-01-01 00:30:00  NaN  3.0
2018-01-01 00:45:00  NaN  3.0
2018-01-01 01:00:00  NaN  3.0
2018-01-01 01:15:00  NaN  NaN
2018-01-01 01:30:00  6.0  5.0
2018-01-01 01:45:00  6.0  5.0
2018-01-01 02:00:00  6.0  5.0