时间序列数据是一种重要的结构化数据形式。
datetime模块中的数据类型
类型 | 说明 |
---|---|
date | 以公历形式存储日历日期(年、月、日) |
time | 将时间存储为时、分、秒、毫秒 |
datetime | 存储日期和时间 |
timedelta | 表示两个datetime值之间的差(日、秒、毫秒) |
datettime格式定义
代码 | 说明 |
---|---|
%Y | 4位数的年 |
%y | 2位数的年 |
%m | 2位数的月[01, 12] |
%d | 2位数的日[01, 31] |
%H | 时(24小时制)[00, 23] |
%I | 时(12小时制)[01, 12] |
%M | 2位数的分[00, 59] |
%S | 秒00, 61 |
%w | 用整数表示的星期几[0(星期天), 6] |
%U | 每年的第几周[00, 53],星期天被认为是每周的第一天 |
%W | 每年的第几周[00, 53],星期一被认为是每周的第一天 |
%z | 以+HHMM或-HHMM表示的UTC时区偏移量 |
%F | %Y-%m-%d简写形式 |
%D | %m/%d/%y简写形式 |
特定于当前环境的日期格式
代码 | 说明 |
---|---|
%a | 星期几的简写 |
%A | 星期几的全称 |
%b | 月份的简写 |
%B | 月份的全称 |
%c | 完整的日期和时间 |
%p | 不同环境中的AM或PM |
%x | 适合于当前环境的日期格式 |
%X | 适合于当前环境的时间格式 |
时间序列的基础频率
别名 | 偏移量类型 | 说明 |
---|---|---|
D | Day | 每日日历 |
B | BusinessDay | 每工作日 |
H | Hour | 每小时 |
T或min | Minute | 每分 |
S | Second | 每秒 |
L或ms | Milli | 每毫秒 |
U | Micro | 每微秒 |
M | MonthEnd | 每月最后一个日历日 |
BM | BusinessMonthEnd | 每月最后一个工作日 |
MS | MonthBegin | 每月第一个日历日 |
BMS | BusinessMonthBegin | 每月第一个工作日 |
W-MON、W-TUE | Week | 从指定的星期几(MON、TUE、WED、THU、FRI、SAT、SUN)开始算起,每周 |
WOM-1MON、WOM-2MON | WeekOfMonth | 产生每月第一、第二、第三或第四周的星期几 |
Q-JAN、Q-FEB | QuarterEnd | 对于以指定月份(JAN、FEB、MAR、APR、MAY、JUN、JUL、AUG、SEP、OCT、NOV、DEC)结束的年度,每季度最后一月的最后一个日历日 |
BQ-JAN、BQ-FEB | BusinessQuarterEnd | 对于以指定月份结束的年度,每季度最后一月的最后一个工作日 |
QS-JAN、QS-FEB | QuarterBeging | 对于以指定月份结束的年度,每季度最后一月的第一个日历日 |
BQS-JAN、BQS-FEB | BusinessQuarterBegin | 对于以指定月份结束的年度,每季度最后一月的第一个工作日 |
A-JAN、A-FEB | YearEnd | 每年指定月份的最后一个日历日 |
BA-JAV、BA-FEB | BusinessYearEnd | 每年指定月份的最后一个工作日 |
AS-JAN、AS-FEB | YearBegin | 每年指定月份的第一个日历日 |
BAS-JAV、BAS-FEB | BusinessYearBegin | 每年指定月份的第一个工作日 |
resample方法的参数
参数 | 说明 |
---|---|
freq | 表示重采样频率的字符串或DateOffset,例如'M'、'5min'或Second(15) |
how='mean' | 用于产生聚合值的函数名或数组函数,例如'mean'、'ohlc'、np.max等。默认为'mean',其他常用的值有:'first'、'last'、'median'、'ohlc'、'max'、'min'。 |
axis=0 | 重采样的轴,默认为axis=0 |
fill_method=None | 升采样时如何插值,比如'ffill'或'bfill'。默认不插值 |
closed='right' | 在降采样中,各时间段的哪一端是闭合(即包含)的,'right'或'left',默认为'right' |
label='right' | 在降采样中,如何设置聚合值的标签,'right'或'left'(面元的右边界或左边界),默认为'right' |
loffset=None | 面元标签的时间校正值,比如'-1s'/Second(-1)用于将聚合标签调早1秒 |
limit=None | 在前向或后向填充时,允许填充的最大时期数 |
kind=None | 聚合到时期('period')或时间戳('timestamp'),默认聚合到时间序列的索引类型 |
convention=None | 当重采样时期时,将低频率转换到高频率所采用的约定('start'或'end'),默认为'end' |
移动窗口和指数加权函数
函数 | 说明 |
---|---|
rolling_count | 返回各窗口非NA观测值的数量 |
rolling_sum | 移动窗口的和 |
rolling_mean | 移动窗口的平均数 |
rolling_median | 移动窗口的中位数 |
rolling_var、rolling_std | 移动窗口的方差和标准差。分母为n-1 |
rolling_skew、rolling_kurt | 移到窗口的偏度(三阶矩)和峰度(四阶矩) |
rolling_min、rolling_max | 移动窗口的最小值和最大值 |
rolling_quantile | 移动窗口指定百分位数/样本分位数位置的值 |
rolling_corr、rolling_cov | 移动窗口的相关系数和协方差 |
rolling_apply | 对移动窗口应用普通数组函数 |
ewma | 指数加权移动平均 |
ewmvar、evmstd | 指数加权移动方差和标准差 |
ewmcorr、ewmcov | 指数加权移动相关系数和协方差 |
参考文献:
利用Python进行数据分析. Wes McKinney. 唐学韬译