利用date_range紀錄日期格式的資料

在處理資料上,常常會遇到需要使用日期格式來記錄的資料,像是捷運公司如果想要紀錄每天乘客的數量,需要這筆資料記錄到某天的日期當中;投資客想要紀錄跟分析台股每天的漲跌狀況;老師需要記錄學生的所以成績;氣象局想要分析每天的溫度或雨量等等的資料。利用date_range便可以輕易地達成目的。對上日期後,我們才能隨心所欲的取出我們要的日期資料,像是比較每年 7/18 號的載客數量、每年一月分到三月份的乘客量與天氣溫度之間的關係等分析,由於依照日期記錄的資料實在是太多太多了,所以這篇會教大家如何創建利用某段日期的 index。

import pandas as pd
pd.date_range('2018-8-01',periods = 31)

首先,他是在 pandas 中的一個模組,所以我們必須要先做import pandas as pd,接著我們就可以使用pd.data_range了,至於我們要如何指定日期區間呢?首先,指定某一天日期,接著在periods參數中指定連續的天數。噹啷~~ 我們便把需要的日期給產生出來啦~~

剛剛有提到參數,相信有些人對於參數還不是那麼的熟悉,什麼是參數呢 ? 之前有說過Python 很大的程度上,是使用人家寫好的現成模組,但是~但是~但是~~人家寫好的code,不一定會完全符合你的需求啊!?所以一般來說,寫好的模組都會提供某些參數設定,讓使用者可以自行調整,像以上面的例子來說,大家創建的index天數一定不相同,所以大家可以藉由自行調整periods來改變天數,除了這個參數以外其實還有很多的參數可以提供大家做更細部的修正,下面我來說明幾個比較常用的參數吧:

  • start:這個參數可以指定開始的日期
  • end:這個參數可以指定結束的日期
  • periods:指定出現次數
  • freq:可以指定間隔的時間(可以使用D(天), H(小時), T(分鐘), S(秒))
  • normalize:可以設定他normalize = True或是normalize = False 。如果利用start 跟end指定的話,開始與結束都會落在最近午夜十二點前。

相信看完這個,很多人還是不知道在幹嘛,沒關係,我們來出幾個題目試試看有沒有辦法自己寫出來吧~~

如果想要指定 2017-01-25 開始到 2017-01-28 ,每隔100分鐘產生一次的話可以怎麼用呢?

import pandas as pd
pd.date_range(start = '2017-01-26', end = '2017-01-28' , freq = '100T')

其中freq = '100T'代表間隔100分鐘。

指定 2017-01-15 開始到 2017-01-16,每隔6小時產生一次的話可以怎麼用呢?

import pandas as pd
pd.date_range(start = '2017-01-15', end = '2019-01-16' , freq = '6H', normalize = True)

最後一個,從2018-05-12每107分鐘產生一次,產生1024筆~~

import pandas as pd
pd.date_range('2018-01-15', freq = '107T', periods = 1024)

這種複雜的情況只要稍微調整一下就可以輕鬆產生出來啦~~大家可以試著看看怎麼修改參數會產生不一樣的資料,另外參數的設定這件事情在Python中非常非常重要,如果可以學會的話,未來可以減少很多的時間。最後一件事情啊~~

要如何看 module 中有那些參數呢?

pd.date_range??

可以打出你想看的模組後,加上兩個?,他就會把說明的文件叫出來拉~~裡面包含模組的說明,可以調整的參數跟參數說明,有的甚至包含範例,大家可以多利用這個功能來看看要如何客製化達到自己想要的功能。

 

Facebook Comments

發表迴響