时间序列--日期和时间数据类型及工具
Posted mrlayfolk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了时间序列--日期和时间数据类型及工具相关的知识,希望对你有一定的参考价值。
时间序列(time series)数据是一种重要得结构化数据形式,在多个时间点观察或测量到得任何事物都可以形成一段时间序列,很多时间序列是固定频率的。也就是说,数据点是根据某种规律定期出现的(比如15s、5min、1mont)。时间序列也可以是不定期的。时间序列的意义取决于具体的应用场景,主要有以下几种:
- 时间戳(timestamp),特定的时刻
- 固定日期(period),如2007年1月或2010年全年
- 时间间隔(interval),由起始和结束时间戳表示,时期(period)可以被看作间隔(interval)的特例
- 实验或过程时间,每个时间点都是相对于特定起始时间的一个度量
pandas提供了一组标准的时间序列处理工具和数据算法。
1.1 日期和时间数据类型及工具
python标准库包含用于日期(date)和时间(time)数据的数据类型,以及日历方面的功能。主要用到datetime、time以及calendar模块。
约定:from datetime import datetime
1 >>> from datetime import datetime 2 >>> now = datetime.now() 3 >>> now 4 datetime.datetime(2020, 2, 5, 10, 58, 59, 339099) 5 >>> now.year, now.month, now.day 6 (2020, 2, 5)
datetime以毫秒形式存储日期和时间,datetime.timedelta表示两个datetime对象之间的时间差:
1 >>> delta = datetime(2011, 1, 7) - datetime(2011, 1, 6) 2 >>> delta.days 3 1 4 >>> delta.seconds 5 0 6 >>>
可以给datetime对象加上(或减去)一个或多个timedelta。
1 >>> from datetime import timedelta 2 >>> start = datetime(2011, 1, 7) 3 >>> start + timedelta(12) 4 datetime.datetime(2011, 1, 19, 0, 0) 5 >>> start - 2 * timedelta(12) 6 datetime.datetime(2010, 12, 14, 0, 0)
datetime模块中的数据类型如下表所示:
类型 |
说明 |
date |
以公历形式存储日历日期(年、月、日) |
time |
将时间存储为时、分、秒、毫秒 |
datetime |
存储日期和时间 |
timedelta |
表示两个datetime值之间的差(日、秒、毫秒) |
1.1.1 字符串和datetime的相互转换
利用str或strftime方法(传入一个格式化字符串),datetime对象和pandas的Timestamp对象可以被格式化为字符串。
1 >>> stamp = datetime(2020, 2, 5) 2 >>> str(stamp) 3 ‘2020-02-05 00:00:00‘ 4 >>> stamp.strftime(‘%Y-%m-%d‘) 5 ‘2020-02-05‘
下表是全部的格式化编码,datatime.strptime可以用这些格式化编码将字符串转换为日期:
代码 |
说明 |
%Y |
4位数的年 |
%y |
2位数的年 |
%m |
2位数的月[01, 12] |
%d |
2位数的日[01, 31] |
%H |
时(24小时制)[00, 23] |
% |
时(12小时制)[01, 12] |
%M |
2位数的分[00, 59] |
%S |
秒[00, 60](秒60和61用于闰秒) |
%w |
用整数表示的星期几[0(星期天), 6] |
%U |
每年的第几周[00, 53],星期天被认为是每周的第一天,每年第一个星期天之前的那几天被认为是“第0周”。 |
%W |
每年的第几周[00, 53],星期一被认为是每周的第一天,每年第一个星期一之前的那几天被认为是“第0周” |
%z |
以+HHMM或-HHMM表示的UTC时区偏移量,如果时区为naïve,则返回空字符串 |
%F |
%Y-%m-%d简写形式,例如2012-4-18 |
%D |
%m/%d/%y简写形式,例如04/18/12 |
datetime对象还有一些特定于当前环境(位于不同国家或不同语言的系统)的格式化选项。如下表所示:
代码 |
说明 |
%a |
星期几的简写 |
%A |
星期几的全称 |
%b |
月份的简写 |
%B |
月份的全称 |
%c |
完整的日期和时间,例如“Tue 01 May 2012 04:20:57 PM” |
%p |
不同环境中的AM或PM |
%x |
适合于当前环境的日期格式 |
%X |
适用于当前环境的时间格式 |
以上是关于时间序列--日期和时间数据类型及工具的主要内容,如果未能解决你的问题,请参考以下文章