pandas.core.resample.Resampler.bfill#

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

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

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

参数:
限制int, 可选

填充值的数量限制。

返回:
Series, DataFrame

一个带有向后填充NaN值的上采样Series或DataFrame。

参见

nearest

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

ffill

向前填充NaN值。

Series.fillna

在 Series 中使用指定方法填充 NaN 值,方法可以是 ‘backfill’。

DataFrame.fillna

使用指定方法填充 DataFrame 中的 NaN 值,该方法可以是 ‘backfill’。

参考文献

例子

重采样一个序列:

>>> 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: 30min, 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: 15min, 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