文章目录
一、时序中的基本对象
| 概念 | 单元素类型 | 数组类型 | pandas数据类型 |
|---|---|---|---|
| Date times | Timestamp | DatetimeIndex | datetime64[ns] |
| Time deltas | Timedelta | TimedeltaIndex | timedelta64[ns] |
| Time spans | Period | PeriodIndex | period[freq] |
| Date offsets | DateOffset | None | None |
二、时间戳
1. Timestamp的构造及属性
- 单个时间戳通过
pd.Timestamp实现,一般来讲常见的日期格式能够被成功转换 - 单元素类型为
Timestamp时,可以通过year,month,day,hour,min,second来获取对应的具体数值 datetime64[ns]的精度时纳秒,用64为存储,则时间范围在585年之间,可以通过pd.Timestamp.max和pd.Timestamp.min来获取时间戳的范围
2. Datetime序列的生成
- 一组时间戳可以组成时间序列,可以用
to_datetime和date_range来生成,to_datetime能狗酱一列时间戳格式的对象转换成为datetime64[ns]类型的时间序列 - 如果时间戳格式不满足时,可以通过强制使用
format进行匹配 - 如果是非
pandas内部的Series,因此返回的是DatetimeIndex,如果想要转为datetime64[ns]的序列,需要显式用Series转化 date_range是一种生成连续间隔时间的一种方法,其重要的参数为start, end, freq, periods,它们分别表示开始时间,结束时间,时间间隔,时间戳个数- 改变序列采样频率的方法
asfreq,它能够根据给定的freq对序列进行类似于reindex的操作,新的Index值为缺失
3. dt对象
- 如同
category, string的序列上定义了cat, str来完成分类数据和文本数据的操作,在时序类型的序列上定义了 dt 对象来完成许多时间序列的相关操作 - 对于
datetime64[ns]类型而言的操作有:取出时间相关的属性、判断时间戳是否满足条件、取整操作
- 取出时间相关的常用属性包括:
date, time, year, month, day, hour, minute, second, microsecond, nanosecond, dayofweek, dayofyear, weekofyear, daysinmonth, quarter,其中daysinmonth, quarter分别表示该月一共有几天和季度dayofweek,它返回了周中的星期情况,周一为0、周二为1month_name, day_name返回英文的月名和星期名,注意它们是方法而不是属性- 判断时间戳是否满足条件:
is_year_start,is_year_end- 取整操作:取整操作包含
round, ceil, floor,它们的公共参数为freq,常用的包括H, min, S(小时、分钟、秒)
4. 时间戳的切片与索引
如果想要选出某个子时间戳序列,第一类方法是利用 dt 对象和布尔条件联合使用,另一种方式是利用切片,后者常用于连续时间戳
三、时间差
1. Timedelta的生成
间差可以理解为两个时间戳的差,可以通过 pd.Timedelta 来构造
生成时间差序列的主要方式是 pd.to_timedelta ,其类型为 timedelta64[ns]
与 date_range 一样,时间差序列也可以用 timedelta_range 来生成,它们两者具有一致的参数
对于 Timedelta 序列,同样可以定义 dt 对象,dt主要定义的属性包括 days, seconds, mircroseconds, nanoseconds ,它们分别返回了对应的时间差特征。需要注意的是,这里的 seconds 不是指单纯的秒,而是对天数取余后剩余的秒数,如果想要直接得到对应的秒数total_seconds
2. Timedelta的运算
与标量的乘法运算、与时间戳的加减法运算、与时间差的加减法与除法运算:
四、日期偏置
1. Offset对象
Offset 对象在 pd.offsets 中被定义
2. 偏置字符串
几乎每一个 Offset 对象绑定了日期偏置字符串( frequencies strings/offset aliases ),可以指定 Offset 对应的字符串来替代使用
五、时序中的滑窗与分组
1. 滑动窗口
时序的滑窗函数,即把滑动窗口用 freq 关键词代替
对于 shift 函数而言,作用在 datetime64 为索引的序列上时,可以指定 freq 单位进行滑动
datetime64[ns] 的序列进行 diff 后就能够得到 timedelta64[ns] 的序列,这能够使用户方便地观察有序时间序列的间隔
2. 重采样
重采样对象resample与groupby的用法相似。没有内置定义函数是可以用apply方法进行自定义
索引一般是取组的第一个时间戳,但 M, A, Q, BM, BA, BQ, W 这七个是取对应区间的最后一个时间戳
本文介绍了pandas中时序数据的基本操作,包括时间戳的构造、时间序列生成、时间差计算、日期偏置和滑窗分组。重点讲解了Timestamp的属性与切片、Timedelta的生成和运算,以及滑动窗口和重采样的应用。
1493

被折叠的 条评论
为什么被折叠?



