zoukankan      html  css  js  c++  java
  • python数据处理技巧二

    python数据处理技巧二(掌控时间)

      首先简单说下关于时间的介绍其中重点是时间戳的处理,时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。这里这个知识只做了解,接下来会用python三个关于时间的模块来定位时间,计算时间等。

      首先让我们来验证下时间戳及怎么换算时间戳

      1.要使用time方法首先要导入方法包import time

      2.获取当前时间戳的方法是print time.time()就可以得到当前执行这个方法的时间(单位是秒)

      3.验证格林时间起始值1970-01-01 由于我们时区是北京所以后面时间用08:00:00来代表小时、分钟、秒

      4.简单介绍下时间格式中需要用到的格式单位

        %Y表示Year也就是年

        %m表示Month也就是月份

        %d表示Day也就是天

        %H表示Hour也就是小时

        %M表示Minute也就是分钟

        %S表示Second也就是秒

      下面我们来看下图的验证结果:

      

      这里很清晰的验证了时间戳的作用就是时间一种表示方式:指的是从格林时间1970年1月1日到现在当前时间统计总秒数。以后看到时间戳不用慌张了,可以理解了接下来我们会教你如何转换时间及处理它。

      然后我们来了解下常用的几个的time的方法,以下代码中有注释

     1 #!/usr/bin/env python
     2 #-*- coding:utf-8 -*-
     3 
     4 import time
     5 
     6 date = "2018-08-08"
     7 
     8 # 转换输入的时间为格式化的元祖
     9 time_tuple = time.strptime(date, "%Y-%m-%d")
    10 print "strptime方法:",time_tuple
    11 # 转换元祖为时间戳
    12 time_stamp = time.mktime(time_tuple)
    13 print "mktime方法:",time_stamp
    14 # 转换时间戳为格式化的元祖
    15 local_time =  time.localtime(time_stamp)
    16 print "localtime方法:",local_time
    17 # 转换元祖为格式化的字符串时间
    18 format_time =  time.strftime("%Y-%m-%d", local_time)
    19 print "strftime方法:",format_time,  type(format_time)
    20 
    21 # 获取当前时间点的时间戳
    22 print "time方法:",time.time()
    23 # 获取当前时间
    24 print "asctime方法:",time.asctime()
    25 
    26 # GMT就是格林尼治标准时间
    27 print "gmtime方法:",time.gmtime()
    28 # 获取格林时间的年份
    29 print "gmtime-tm_year方法:",time.gmtime().tm_year
    30 # 获取格林时间的月份
    31 print "gmtime-tm_mon方法:",time.gmtime().tm_mon
    32 # 获取格林时间的天
    33 print "gmtime-tm_mday方法:",time.gmtime().tm_mday
    34 # 获取格林时间的小时
    35 print "gmtime-tm_hour方法:",time.gmtime().tm_hour
    36 # 获取格林时间的分钟
    37 print "gmtime-tm_min方法:",time.gmtime().tm_min
    38 # 获取格林时间的秒数
    39 print "gmtime-tm_sec方法:",time.gmtime().tm_sec
    40 # 获取格林时间的星期几
    41 print "gmtime-tm_wday方法:",time.gmtime().tm_wday
    42 # 获取格林时间的一年中的第几天
    43 print "gmtime-tm_yday方法:",time.gmtime().tm_yday

       我们在学习一个datetime方法,会有同学问这个很眼熟date+time?date表示日期也就是时间中日期一些处理方法。上面你看到又要记录输入时间格式又是转换来回导方法,方法名又接近很容易混淆,如果只是处理日期,其实datetime模块是个不错的选择,我也只简单介绍几个好用常用的方法。

       接下来我们再来了解下datetime模块中的方法,以下代码中有注释:

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    
    import datetime
    
    # 打印当前时间的格式
    date_now = datetime.datetime.now()
    print date_now
    # 打印当前时间的指定格式
    date_str = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    print date_str
    # 只打印今天的日期
    print datetime.date.today()
    # 获取几几年(类型是整形,返回结果是数字)
    y = datetime.date.today().year
    # 获取几月(类型是整形,返回结果是数字)
    m = datetime.date.today().month
    # 获取几号(类型是整形,返回结果是数字)
    d = datetime.date.today().day
    print "打印上面获取的结果:",y,m,d
    print "验证上面的类型:",type(y),type(m),type(d)
    print "获取今天是周几:",datetime.datetime(y, m, d).strftime("%w")
    print "获取指定日期是周几:",datetime.datetime(2018, 10, 26).strftime("%w")

      这里肯定会有同学知道%w就是week也就是周(星期)的单位,是不是看了datetime的方法比time方法对于获取日期的方式还要简单。

       当然接下来要介绍一个calendar日历定位的方法,只要学会这个很容易结合上面的方法去处理日期时间的计算及时间转换,国际化中时区的控制等。

      1.使用日历方法首先还是要导入calendar方法import calendar

      2.介绍一个简单查看日历的方法calendar.month(year)可以查看一年所有的日历信息calendar.month(year,month)只查看当月日历信息

      3.这里我们要注意的是方法中星期一到星期天用0到6表示类似range(7)输出的的值

      

      下面让我们来看一些常用的方法已加注释

     1 #!/usr/bin/env python
     2 #-*- coding:utf-8 -*-
     3 
     4 import calendar
     5 
     6 print "判断输入年份是否是闰年:",calendar.isleap(2000)
     7 print "计算两个年份之间的闰年总和:",calendar.leapdays(2000,2020)
     8 print "获取当月总共有多少天:",calendar.monthrange(2018,10)
     9 # 星期天数对应用 0,1,2,3,4,5,6代表星期一、星期二、星期三、星期四、星期五、星期六、星期天
    10 print "获取日期星期几:",calendar.weekday(2018, 10, 01)
    11 print "获取当月的总天数7天为一组并标注对应索引与星期的关系",calendar.monthcalendar(2018,9)

      到这里是不是想到怎么可以如何从数据中快速定位某一周或者3个月或指定周天的数据?或者是通过时间的转换去处理国际化时间的时差问题等等。只要灵活运用这3个方法可以让你的python对于时间日期等快速灵活的运用处理。

      

  • 相关阅读:
    spark内存管理这一篇就够了
    spark推测机制及参数设置
    python易错点汇总,不定期更新
    Spark架构与原理这一篇就够了
    MySQL查询这一篇就够了
    pyspark计算最大值、最小值、平均值
    Spark性能调优的方法
    大流量场景下MySQL如何准备
    100台CentOS7要分区怎么办?
    100台CentOS7要升级OpenSSH怎么办?
  • 原文地址:https://www.cnblogs.com/cookie1026/p/9716251.html
Copyright © 2011-2022 走看看