1 方法介绍
asfreq
是一个在 Pandas 时间序列数据分析中常用的方法。这个方法主要用于改变时间序列的频率。asfreq
可以帮助我们将一个时间序列从一个频率转换为另一个频率
2 基本用法
DataFrame.asfreq(
freq,
method=None,
how=None,
normalize=False,
fill_value=None)
3 参数说明
freq | 字符串,表示目标频率 |
method | 用于指定如何填充缺失值
|
how | {'start', 'end'},默认为 'end' 于在聚合高频率数据时确定目标频率的哪一端用于标签 how='end' 表示使用 12/31,而不是 1/1 |
normalize | 布尔值,默认为 False。如果为 True,则将开始和结束时间标准化为午夜 |
fill_value | 用于填充在重新采样过程中引入的缺失值 |
4 举例
import pandas as pd
# 创建一个时间序列 DataFrame
date_rng = pd.date_range(start='1/1/2022', end='2/10/2022', freq='D')
data = {'date': date_rng, 'data': range(41)}
df = pd.DataFrame(data)
df
# 将其设置为时间索引
df.set_index('date', inplace=True)
df
df.asfreq('W')
5 freq汇总
5.1 常规时间序列频率
- D: 日历日
- B: 工作日
- H: 小时
- T 或 min: 分钟
- S: 秒
- L 或 ms: 毫秒
- U 或 us: 微秒
- N: 纳秒
5.2 月份相关
- M: 月底日期
- BM: 月底的工作日
- MS: 月初日期
- BMS: 月初的工作日
5.3 季度相关
- Q: 季度末日期
- BQ: 季度末的工作日
- QS: 季度初日期
- BQS: 季度初的工作日
5.4 年份相关
- A 或 Y: 年底日期
- BA 或 BY: 年底的工作日
- AS 或 YS: 年初日期
- BAS 或 BYS: 年初的工作日
5.5 周相关
- W: 每周
- W-MON, W-TUE, ...: 每周,并指定开始的工作日
5.6 其他
- SM: 半月末(15号和月底)
- SMS: 半月初(1号和15号)
- BH: 工作时间内的小时
5.6 组合
还可以组合这些基本频率来创建新的频率。例如,你可以使用 "2H30T" 来表示 2小时30分钟的频率。
5.7 锚定偏移量
- WOM-1MON, WOM-2MON, ...: 每月的第1、2、...个星期一
- Q-JAN, Q-FEB, ...: 每季度,以1月、2月、...为季度末月份