有关时间序列

本文深入探讨了时间序列数据的处理方法,包括datetime模块的使用、时间序列索引的创建与操作、频率转换、时间区间表示及算术运算。详细介绍了如何利用pandas库进行时间序列的切片、分组、重采样以及频率转换,适用于各种数据科学和金融分析场景。

时间序列

datetime模块

datetime存储日期,也存储细化到微秒的时间,timedelta为两个datetime对象的时间差。
例:
在这里插入图片描述
在这里插入图片描述

字符串与datetime互相转换

strftime方法:timestamp转换为字符串。
在这里插入图片描述
strptime方法:字符串转换为日期类型,datetime.strptime(str,格式)
在这里插入图片描述

dateutil.parser.parse方法:能解析大部分人类可理解的日期字符串,转化为日期类型。
在这里插入图片描述
dayfirst参数等于True表明字符串中日出现在月之前。

datetime格式说明:

类型描述
%Y四位的年份
%y两位的年份
%m两位的月份
%dl两位的日期号
%H小时,24小时制
%I小时,12小时制
%M两位分钟
%S两位秒
%w星期几(0(星期天)-6)

DatetimeIndex

时间序列索引、选择、子集

传递一个能解释为日期的字符串:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
切片:
在这里插入图片描述
在这里插入图片描述
含有重复索引时间序列分组
groupby方法默认axis=0,对行分组,level默认为None,若要按索引进行分组,传递对应层号或层名值给level参数;如groupby(level=0):
在这里插入图片描述

date_range:

pandas.date_range用于根据特定频率(默认为day)生成指定长度的Datetimeindex;需要指定起始和结尾日期,若只传递一个起始或结尾日期,必须传递范围:

在这里插入图片描述

常用基础时间序列频率

别名描述
D日历日的每天
B工作日的每天
H每小时
T或min每分钟
S每秒
L或ms每毫秒(1/1000秒)
U每微秒(1/1000000秒)
M日历日的月底日期
BM工作日的月底日期
MS日历日的月初日期
BMS工作日的月初日期
W-MON,W-TUE,…每周的星期一,二…
WOM-MON,WOM-2MON,…每月的第一个星期一,每月的第二个星期一
Q-JAN,Q-FEB,…以指定月份为每年的结束月,取每个季度最后一个月的日历日的月底日期
BQ-JAN,BQ-FEB…以指定月份为每年的结束月,取每个季度最后一个月的工作日的月底日期
QS-JAN,QS-FEB…以指定月份为每年的结束月,取每个季度最后一个月的日历日的月初日期
BQS-JAN,BQS-FEB…以指定月份为每年的结束月,取每个季度最后一个月的工作日的月初日期
A-JAN,A-FEB…以指定月份为每年的结束月,取每年指定月份的日历日的月底日期
BA-JAN,BA-FEB…以指定月份为每年的结束月,取每年指定月份的工作日的月底日期
BAS-JAN,BAS-FEB以指定月份为每年的结束月,取每年指定月份的工作日的月初日期

标准化为零点的时间戳:date_range的参数normalize=True
日期偏置:如4h,1h30min等

移位日期

shift
不指定频率,只移动数据,索引不变,会产生缺失值;指定频率则数据不变,索引移动。
在这里插入图片描述

时间区间

时间区间表示的是时间范围,如一些天,一些月,一些季度,一些年。Period类就是这种数据类型。

pd.Period_range

需传入一个字符串或数字以及频率;相关频率与时间戳的有些区别:

A
M
D
H
T
S

在这里插入图片描述
在这里插入图片描述

区间频率转换

asfreq可以讲区间PeriodPeriodIndex对象转换为其他频率。how=‘start’or’s’,取开始的日期,'end’or’e’取结束的日期;例:
在这里插入图片描述

区间算术

在时间段上增加或减去整数根据它们的频率进行移位
在这里插入图片描述
在这里插入图片描述

将时间戳转换为区间,将区间转换为时间戳

to_period():不指定频率的情况下,根据时间戳推断出新PeriodIndex的频率。可指定任意频率。
在这里插入图片描述

to_timestamp()
在这里插入图片描述

从数组生成PeriodIndex

在这里插入图片描述

重采样与频率转换

高频率频率到低频率为向下采样,聚合数据;低频率转换到高频率为向上采样,产生缺失值;其他情况为非向上、向下取样。
pandas对象resample方法:类似于groupby,对数据分组,再调用聚合函数。
resample参数:

参数描述
freq采样频率
fill_method向上采样时的插值方式,‘ffill’或’bfill’;默认不插值。
closed向下采样中,每段区间的哪一段是封闭的
label向下采样中,使用哪段标记聚合结果
limit前向或后向填充区间最大值
kind对区间或时间戳的聚合,默认为时间序列索引类型
convention将低频转为高频,‘s’or’e’,默认为’end’,仅使用periodindex,表示使用开头还是结尾

向下采样

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
resample.ohlc():ohlc聚合函数返回开端,结束,峰值、谷值。
在这里插入图片描述

向上采样

在这里插入图片描述

移动窗口

rolling滚动函数传入区间大小,min_periods参数指定每个窗口至少需要多少个数据。例:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值