pandas.DataFrame.asfreq #

数据框。asfreq ( freq , method = None , how = None , normalize = False , fill_value = None ) [来源] #

将时间序列转换为指定频率。

返回符合指定频率的新索引的原始数据。

如果这个Series/DataFrame的索引是 a PeriodIndex,则新索引是原始索引 转换的结果 PeriodIndex.asfreq(因此原始索引将一对一映射到新索引)。

否则,新索引将等价于where和are 分别是原始索引中的第一个和最后一个条目(请参阅)。与新索引中原始索引中不存在的任何时间步相对应的值将为 null ( ),除非提供了填充此类未知数的方法(请参阅下面的参数)。pd.date_range(start, end, freq=freq)startendpandas.date_range()NaNmethod

resample()如果需要对每组时间步长(例如聚合)进行操作来表示新频率的数据,则该方法更合适。

参数
freq DateOffset 或 str

频率 DateOffset 或字符串。

方法{'backfill'/'bfill', 'pad'/'ffill'}, 默认 None

用于填充重新索引系列中的孔的方法(请注意,这不会填充已经存在的 NaN):

  • 'pad' / 'ffill':将最后一个有效观察向前传播到下一个有效观察

  • 'backfill' / 'bfill':使用下一个有效观察来填充。

如何{'start', 'end'}, 默认结束

仅适用于PeriodIndex(请参阅PeriodIndex.asfreq)。

标准化布尔值,默认 False

是否将输出索引重置为午夜。

fill_value标量,可选

用于缺失值的值,在上采样期间应用(请注意,这不会填充已经存在的 NaN)。

返回
系列/数据框

Series/DataFrame 对象重新索引到指定的频率。

也可以看看

reindex

使用可选的填充逻辑使 DataFrame 符合新索引。

笔记

要了解有关频率字符串的更多信息,请参阅此链接

例子

首先创建一个具有 4 个一分钟时间戳的系列。

>>> index = pd.date_range('1/1/2000', periods=4, freq='min')
>>> series = pd.Series([0.0, None, 2.0, 3.0], index=index)
>>> df = pd.DataFrame({'s': series})
>>> df
                       s
2000-01-01 00:00:00    0.0
2000-01-01 00:01:00    NaN
2000-01-01 00:02:00    2.0
2000-01-01 00:03:00    3.0

将系列上采样为 30 秒的 bin。

>>> df.asfreq(freq='30s')
                       s
2000-01-01 00:00:00    0.0
2000-01-01 00:00:30    NaN
2000-01-01 00:01:00    NaN
2000-01-01 00:01:30    NaN
2000-01-01 00:02:00    2.0
2000-01-01 00:02:30    NaN
2000-01-01 00:03:00    3.0

再次上采样,提供.fill value

>>> df.asfreq(freq='30s', fill_value=9.0)
                       s
2000-01-01 00:00:00    0.0
2000-01-01 00:00:30    9.0
2000-01-01 00:01:00    NaN
2000-01-01 00:01:30    9.0
2000-01-01 00:02:00    2.0
2000-01-01 00:02:30    9.0
2000-01-01 00:03:00    3.0

再次上采样,提供method.

>>> df.asfreq(freq='30s', method='bfill')
                       s
2000-01-01 00:00:00    0.0
2000-01-01 00:00:30    NaN
2000-01-01 00:01:00    NaN
2000-01-01 00:01:30    2.0
2000-01-01 00:02:00    2.0
2000-01-01 00:02:30    3.0
2000-01-01 00:03:00    3.0