DataFrame.asfreq(freq,method = None,how = None,normalize = False,fill_value = None)
将TimeSeries转换为指定的频率。
可选择提供填充方法来填充/回填缺失值。
返回符合指定频率的新索引的原始数据。resample如果需要一个操作(如摘要)来表示新频率的数据,则更合适。
参数: | freq : 方法 : {'backfill'/'bfill','pad'/'ffill'},默认 用于填充重建索引Series中的孔的方法(请注意,这不会填充已存在的NaN): 'pad'/'ffill':将最后一次有效结果传播到下一个有效 'backfill'/'bfill':使用NEXT有效结果来填充 how : {‘ 仅适用于PeriodIndex,请参阅PeriodIndex.asfreq normalize : 是否将输出索引重置为午夜 fill_value : 标量,可选 用于缺失值的值,在上采样期间应用(请注意,这不会填充已存在的NaN)。 版本0.20.0中的新功能。 |
返回: | converted : 与调用者相同的类型 |
Notes,
要了解有关频率字符串的更多信息,请参阅此链接。
例子,
首先创建一个包含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
将该series变为30秒的bins
>>> 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