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模块中的方法,以下代码中有注释:

  1. #!/usr/bin/env python
  2. #-*- coding:utf-8 -*-
  3.  
  4. import datetime
  5.  
  6. # 打印当前时间的格式
  7. date_now = datetime.datetime.now()
  8. print date_now
  9. # 打印当前时间的指定格式
  10. date_str = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
  11. print date_str
  12. # 只打印今天的日期
  13. print datetime.date.today()
  14. # 获取几几年(类型是整形,返回结果是数字)
  15. y = datetime.date.today().year
  16. # 获取几月(类型是整形,返回结果是数字)
  17. m = datetime.date.today().month
  18. # 获取几号(类型是整形,返回结果是数字)
  19. d = datetime.date.today().day
  20. print "打印上面获取的结果:",y,m,d
  21. print "验证上面的类型:",type(y),type(m),type(d)
  22. print "获取今天是周几:",datetime.datetime(y, m, d).strftime("%w")
  23. 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对于时间日期等快速灵活的运用处理。

  

python数据处理技巧二的更多相关文章

  1. python数据处理技巧一

    字符串赋值(传参)技巧 Python中一般的字符串赋值的方式如下: variable = "Test" print "I just [%s] unit"%var ...

  2. python数据处理(二)之处理Excel文件

    代码与资料 https://github.com/jackiekazil/data-wrangling 1.安装相关包 2.解析Excel文件 在解析Excel之前应该想办法寻找替代的格式 3.开始解 ...

  3. #1 Python灵活技巧

    前言 Python基础系列博文已顺利结束,从这一篇开始将进入探索更加高级的Python用法,Python进阶系列文章将包含面向对象.网络编程.GUI编程.线程和进程.连接数据库等.不过在进阶之前,先来 ...

  4. Python 实用技巧

    模块相关 导入模块时,可以通过模块的 __file__ 属性查看模块所在磁盘的路径位置,参考:关于Python包和模块的10个知识清单 Pip 安装Pip 方法一: sudo apt-get purg ...

  5. Python解题技巧

    Python解题技巧 一直都是用C++和C解题,某题简单解完后便心血来潮想用Python解一次,发现一些问题,特写此篇随笔来记录. 一. 输入格式: 例:输入第1行给出正整数n和整数m:第2行给出n个 ...

  6. Python 数据处理库pandas教程(最后附上pandas_datareader使用实例)

    0 简单介绍 pandas是一个Python语言的软件包,在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础编程库.本文是对它的一个入门教程. pandas提供了快速,灵活和富有 ...

  7. 最全总结 | 聊聊 Python 数据处理全家桶(配置篇)

    1.前言 在实际项目中,经常会接触到各种各样的配置文件,它可以增强项目的可维护性 常用配件文件的处理方式,包含:JSON.ini / config.YAML.XML 等 本篇文章,我们将聊聊 Pyth ...

  8. 最全总结 | 聊聊 Python 数据处理全家桶(PgSQL篇)

    1. 前言 大家好,我是安果! Python 数据处理全家桶,截止到现在,一共写过 6 篇文章,有兴趣的小伙伴可以去了解一下! 最全总结 | 聊聊 Python 数据处理全家桶(Mysql 篇) 最全 ...

  9. SQL开发技巧(二)

    本系列文章旨在收集在开发过程中遇到的一些常用的SQL语句,然后整理归档,本系列文章基于SQLServer系列,且版本为SQLServer2005及以上-- 文章系列目录 SQL开发技巧(一) SQL开 ...

随机推荐

  1. groovy : poi 导出 Excel xlsx

    參考 file:///poi-3.10-FINAL/docs/spreadsheet/how-to.html#sxssf text2xlsx.groovy 代码例如以下 package xlsx; i ...

  2. Jmeter添加响应断言

    1.使用Badboy录制登录页面->import to Jmeter 2.Jmeter打开保存的文件,在登录请求下添加响应断言

  3. 关于oracle db 11gR2版本号上的_external_scn_rejection_threshold_hours參数和scn headroom补丁问题

    关于oracle db 11gR2版本号上的_external_scn_rejection_threshold_hours參数和scn headroom补丁问题 来自于: Installing, Ex ...

  4. Double Vision (Unity 5.0)

    Double Vision (Unity 5.0): 根据 http://http.developer.nvidia.com/CgTutorial/cg_tutorial_chapter03.html ...

  5. JNI中java类型的简写

      在JNI中,当我们使用GetFieldID/GetStaticFieldID或GetMethodID/GetStaticMethodID及定义JNINativeMethod等时,我们需要表示成员变 ...

  6. zzulioj--1775-- 和尚特烦恼1——是不是素数(素数水题)

    1775: 和尚特烦恼1--是不是素数 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 563  Solved: 193 SubmitStatusWeb ...

  7. Method Swizzing中一般替换方法都写在Category类别里吗?有没有别的实现方式

    Method Swizzing中一般替换方法都写在Category类别里吗?有没有别的实现方式 Method Swizzing中一般替换方法都写在Category类别里吗?有没有别的实现方式 > ...

  8. OpenGL编程(三)让矩形动起来

    上次实现了在窗口中添加一个了一个矩形.这次的任务是在上次代码的基础上,让那个矩形动起来. 1.思路 要看到动态的效果,首先添加一个定时器,规定的时间刷新一次窗口:不断修改矩形的位置,使其在时间轴上达到 ...

  9. caffe(11) 图像数据转换成db文件

    在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致.而在caffe中经常使用的数据类型是lmdb或leveldb,因此就 ...

  10. Intel NUC迷你机2019年底迎来i9 8核心16线程

    Intel处理器这两年全年提速,虽然10nm新工艺受阻,但核心数在全面增加,从发烧到桌面到低功耗莫不如此,如今连NUC迷你机也要全新进化了,一年多之后就会迎来8核心16线程,而且也划入i9序列. 根据 ...