Fork me on GitHub

python-for-data-3大时间序列

时间序列在很多的领域都是重要的结构化数据形式,例如经济学、金融、生态学、物理学等,其特点是:

  • 在多个时间点进行了观测
  • 许多时间序列是固定频率,即根据相同的规则定期出现
  • 时间序列也可以是没有规则的

时间序列的应用

  1. 时间戳
  2. 固定的时间区间
  3. 时间间隔

笔记1:最广泛和最简单的时间序列是时间戳引起的

处理时间的3大模块

  • datetime
  • time
  • calendar

下面👇详细介绍3大模块的使用

calendar

日历模块calendar中,常用的方法是

image-20200409205954204

calendar

calendar(year,w=2,l=1,c=6):返回year年的日历,3个月一行,间隔距离(每2个月的间隔,总共2个间隔)为c,每个宽度间隔w字符,每行长度:21*w+18(3*6)+2*c

打印2020年完整日历:

1
2
3
import calendar
year = calendar.calendar(2020)
print(year)

isleap(year)

判断某个年份是否是闰年

leapdays(y1,y2)

返回两个年份之间的闰年总数,包含y1,不包含y2

month(year,month,w=2,l=1)

返回的是year年month月的日历,两行标题,一周一行(l=1)。每日间隔宽度为w字符,每行的宽度是7*w+6,l=1是每星期的行数

monthcalendar(year, month)

返回的是列表,列表中的元素还是列表

  • 每个子列表代表一个星期
  • 从星期一到星期日,没有本月的日期用0表示

对比

monthrange(year,month)

返回的是个元组,两个数字:

  1. 第一个:从星期几开始,0代表星期1,6代表星期日
  2. 第二个:该月共多少天

weekday(y,m,d)

输入年月日,知道是星期几

注意:返回值依然是从0-6对应的是星期一到星期日

time

time模块的各种属性方法总结如下:

time

time.time()是获取当前的时间,准确地说是时间戳

笔记2:时间戳timestamp是指一连串的数据中加入文字,比如时间或者日期等,用以保证本地的数据更新和远程一致。

时间戳是以1970-01-01 00:00:00为起点

localtime

time.localtime打印当前的时间,得到的结果是时间元组,具体含义:

序号 属性
0 tm_year 2020
1 tm_mon 1 到 12
2 tm_mday 1 到 31
3 tm_hour 0 到 23
4 tm_min 0 到 59
5 tm_sec 0 到 61 (60或61 是闰秒)
6 tm_wday 0到6 (0是周一)
7 tm_yday 1 到 366(儒略历)
8 tm_isdst -1, 0, 1, -1是决定是否为夏令时的旗帜

time.localtime的参数默认是time.time()的时间戳,可以自己输入某个时间戳来获取其对应的时间

gmtime

localtime得到的是本地时间,如果需要国际化,使用gmtime

格林威治标准时间:位于英国伦敦郊区的皇家格林威治天文台的标准时间,本初子午线经过那里。

asctime

time.asctime的参数为空时,默认是以time.localtime的值为参数,得到当前的日期、时间、星期

ctime

获取当前时间信息,参数默认是time.time()的时间戳

mktime

mktime也是以时间元组为参数,比如传入localtime()的返回值;

方法返回的是时间戳格式,类似localtime的逆过程

strftime

将时间元组按照指定的格式转化成字符串,如果不指定时间元组,默认是localtime的值

python中的时间日期格式:

格式 含义 取值范围(样式)
%y 去掉世纪的年份 00-99,如“19”
%Y 完整的年份 如2019
%j 指定日期是一年中的第几天 范围001-366
%m 返回的是月份 范围:01-12
%b 本地简化月份的名称 简写的英文月份
%B 本地完整月份的名称 完整的英文月份
%d 该月的第几日 如,5月1日返回的是“01”
%H 第几小时,24小时制 00-23
%l 第几小时,12小时制 00-12
%M 分钟 00-59
%S 00-59
%U 该年中的第几个星期(周日为一周的起点) 00-53
%W 同上,周一为起点 00-53
%w 一个星期中的第几天 0-6
%Z 时区 在大陆测试返回的是CST
%x 日期 日/月/年
%X 时间 时:分:秒
%c 详细日期时间 日/月/年时:分:秒
%% %字符 '%'字符
%p 上下午 AM or PM

strptime

strptime的作用是将字符串转化成时间元组,有两个参数:

  • 时间字符串,比如“20/04/10”
  • 时间字符换对应的格式

datetime

datetime模块中常用的几个类:

  • date:日期类,常用属性:year/month/day
  • time:时间类,常用属性:hour/minute/second/microsecond
  • datetime:日期时间类
  • timedelta:时间间隔
  • tzinfo:时区类

date

不能直接使用datetime.date.year(),因为year不是一个方法

时间戳与格式化时间的转化

time

time类也要先生成time对象才能使用

timedelta

datetime

对象属性信息

datetime中既保存了日期,也保存了细化到微秒的时间。

字符串和datetime的转换

通过使用str方法或者strftime()方法来对datetime对象和pandas中的timestamp对象进行格式化

dateutil

第三方包dateutilparser.parse。安装pandas的时候自动安装

本文标题:python-for-data-3大时间序列

发布时间:2020年04月10日 - 16:04

原始链接:http://www.renpeter.cn/2020/04/10/3%E5%A4%A7%E6%97%B6%E9%97%B4%E5%BA%8F%E5%88%97.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

Coffee or Tea