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 python2 #-*- 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對於時間日期等快速靈活的運用處理。
python數據處理技巧二