pandas.Series.asfreq#
- Series.asfreq(freq, method=None, how=None, normalize=False, fill_value=None)[源代码]#
将时间序列转换为指定频率。
返回符合指定频率的新索引的原始数据。
如果本系列的索引为
PeriodIndex
,新索引是使用PeriodIndex.asfreq
(因此,原始索引将一对一映射到新索引)。否则,新索引将等同于
pd.date_range(start, end, freq=freq)
哪里start
和end
分别是原始索引中的第一个和最后一个条目(请参见pandas.date_range()
)。与原始索引中不存在的新索引中的任何时间步相对应的值将为空 (NaN
),除非提供了填充此类未知数的方法(见method
下面的参数)。这个
resample()
如果需要对每组时间步长进行操作(如聚合)来以新频率表示数据,则方法更合适。- 参数
- freq日期偏移量或字符串
频率日期偏移量或字符串。
- method{‘BACFILL’/‘bFILL’,‘PAD’/‘FILL’},默认为无
用于填充重新索引系列中的空洞的方法(请注意,这不会填充已存在的NAN):
‘Pad’/‘ffill’:将上一个有效观测向前传播到下一个有效观测
“BackFill”/“bFill”:使用下一个要填充的有效观察。
- how{‘开始’,‘结束’},默认结束
仅适用于周期索引(请参阅周期索引.asfreq)。
- normalize布尔值,默认为False
是否将输出索引重置为午夜。
- fill_value标量,可选
用于在上采样期间应用的缺失值的值(请注意,这不会填充已存在的NAN)。
- 退货
- 系列
重新索引到指定频率的序列对象。
参见
reindex
使用可选的填充逻辑使DataFrame符合新索引。
注意事项
要了解更多有关频率字符串的信息,请参阅 this link 。
示例
首先创建一个带有4个一分钟时间戳的系列。
>>> index = pd.date_range('1/1/2000', periods=4, freq='T') >>> 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秒的箱中。
>>> 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