pandas.DataFrame.asfreq#
- DataFrame.asfreq(freq, method=None, how=None, normalize=False, fill_value=None)[源代码]#
将时间序列转换为指定频率。
返回符合指定频率的新索引的原始数据。
如果这个 Series/DataFrame 的索引是一个
PeriodIndex
,新索引是通过使用PeriodIndex.asfreq
转换原始索引的结果(因此原始索引将一对一映射到新索引)。Otherwise, the new index will be equivalent to
pd.date_range(start, end, freq=freq)
wherestart
andend
are, respectively, the min and max entries in the original index (seepandas.date_range()
). The values corresponding to any timesteps in the new index which were not present in the original index will be null (NaN
), unless a method for filling such unknowns is provided (see themethod
parameter below).resample()
方法在每个时间步长组(如聚合)的操作是必要的情况下更合适,以在新频率下表示数据。- 参数:
- freqDateOffset 或 str
频率 DateOffset 或字符串。
- 方法{‘backfill’/’bfill’, ‘pad’/’ffill’}, 默认 None
用于填充重新索引系列中孔洞的方法(注意这不会填充那些已经存在的NaN):
‘pad’ / ‘ffill’: propagate last valid observation forward to next valid based on the order of the index
‘backfill’ / ‘bfill’: 使用下一个有效观测值来填充。
- 如何{‘开始’, ‘结束’}, 默认 结束
仅适用于 PeriodIndex(参见 PeriodIndex.asfreq)。
- normalize布尔值, 默认为 False
是否将输出索引重置为午夜。
- fill_value标量,可选
用于缺失值的值,在向上采样期间应用(注意这不会填充已经存在的NaN)。
- 返回:
- Series/DataFrame
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秒的箱中。
>>> 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
再次上采样,提供一个
填充值
。>>> 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