← 返回首页
转换与处理时间序列数据
发表时间:2024-03-17 14:08:43
转换与处理时间序列数据

1.转换字符串时间为标准时间

在多数情况下,对时间类型数据进行分析的前提就是将原本为字符串的时间转换为标准时间。pandas继承了NumPy库和datetime库的时间相关模块,提供了6种时间相关的类如下表。

Timestamp是时间类中较为基础的,也是较为常用的。在多数情况下,会将与时间相关的字符串转换成为Timestamp。pandas提供的to_datetime函数,能够实现这一目标。to_datetime函数的基本使用格式如下。

pandas.to_datetime(arg, errors='raise', dayfirst=False, yearfirst=False, utc=None, format=None, exact=True, unit=None, infer_datetime_format=False, origin='unix', cache=True)

值得注意的是,Timestamp类型的时间是有限制的,在作者计算机中最早只能够表示至1677年9月21日,最晚只能表示至2262年4月11日。

除了将数据从原始DataFrame中直接转换为Timestamp格式外,还可以将数据单独提取出来,将其转换为DatetimeIndex格式或PeriodIndex格式。但DatetimeIndex和PeriodIndex在日常使用的过程中并无太大区别。 - DatetimeIndex是用于指代一系列时间点的一种数据结构。 - PeriodIndex则是用于指代一系列时间段的数据结构。

2.提取时间序列数据信息

在多数涉及与时间相关的数据处理、统计分析的过程中,都需要提取时间中的年份、月份等数据。使用对应的Timestamp类属性就能够实现这一目的,其常用类属性及说明如下表。

3.加减时间数据

时间数据的算术运算在现实中随处可见,例如,2020年1月1日减一天就是2019年12月31日。pandas的时间数据和现实生活中的时间数据一样可以做运算。这时就涉及pandas的Timedelta类。

Timedelta是时间相关类中的一个异类,不仅能够使用正数,还能够使用负数表示单位时间,如1s、2min、3h等。使用Timedelta类,配合常规的时间相关类能够轻松实现时间的算术运算。

在Timedelta类的时间周期中没有年和月,所有周期名称、对应单位及其说明如下表(注:表中单位采用程序定义的符号,与法定单位符号可能不一致)。