pandas学习:时序数据

本文介绍了pandas中时序数据的基本操作,包括时间戳的构造、时间序列生成、时间差计算、日期偏置和滑窗分组。重点讲解了Timestamp的属性与切片、Timedelta的生成和运算,以及滑动窗口和重采样的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、时序中的基本对象

概念单元素类型数组类型pandas数据类型
Date timesTimestampDatetimeIndexdatetime64[ns]
Time deltasTimedeltaTimedeltaIndextimedelta64[ns]
Time spansPeriodPeriodIndexperiod[freq]
Date offsetsDateOffsetNoneNone

二、时间戳

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、周二为1
  • month_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. 重采样

重采样对象resamplegroupby的用法相似。没有内置定义函数是可以用apply方法进行自定义
索引一般是取组的第一个时间戳,但 M, A, Q, BM, BA, BQ, W 这七个是取对应区间的最后一个时间戳

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值