利用Python进行数据分析(5)- 3大时间序列模块

作者: 皮皮大 | 来源:发表于2020-04-10 16:29 被阅读0次

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

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

    时间序列的应用

    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年完整日历:

    import calendar
    year = calendar.calendar(2020)
    print(year)
    
    image

    isleap(year)

    判断某个年份是否是闰年

    image

    leapdays(y1,y2)

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

    image

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

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

    image

    monthcalendar(year, month)

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

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

    对比

    image

    monthrange(year,month)

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

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

    weekday(y,m,d)

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

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

    image

    time

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

    image

    time

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

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

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

    image

    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()的时间戳,可以自己输入某个时间戳来获取其对应的时间

    image

    gmtime

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

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

    image

    asctime

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

    image

    ctime

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

    image

    mktime

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

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

    image

    strftime

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

    image

    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”
    • 时间字符换对应的格式
    image

    datetime

    datetime模块中常用的几个类:

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

    date

    image

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

    image

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

    image

    time

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

    image

    timedelta

    image

    datetime

    对象属性信息

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

    image
    字符串和datetime的转换

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

    image image

    dateutil

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

    image

    相关文章

      网友评论

        本文标题:利用Python进行数据分析(5)- 3大时间序列模块

        本文链接:https://www.haomeiwen.com/subject/loormhtx.html