首頁 > 軟體

Pandas處理時間序列資料操作詳解

2022-06-02 14:04:42

前言

一般從資料庫或者是從紀錄檔檔案讀出的資料均帶有時間序列,做時序資料處理或者實時分析都需要對其時間序列進行歸類歸檔。而Pandas是處理這些資料很好用的工具包。此篇部落格基於Jupyter之上進行演示,本篇部落格的願景是希望我或者讀者通過閱讀這篇部落格能夠學會方法並能實際運用。希望讀者看完能夠提出問題或者看法,博主會長期維護部落格做及時更新。純分享,希望大家喜歡。

一、獲取時間

python自帶datetime庫,通過呼叫此庫可以獲取本地時間

from datetime import datetime
datetime.now()

 同時也可以獨立獲取年月日:

datetime.now().day
datetime.now().year
datetime.now().moth

 isoweekday()獲取符合ISO標準的指定日期所在的星期數:

datetime.now().isoweekday()

為星期二。

但也有weekeday()方法但是是從0開始,也就是說0也就是週一,需要加一轉為週數:

datetime.now().weekday()+1

 datetime可以將日期(date)和時間(time)分隔開:

datetime.now().date()

datetime.now().time()

也可以用timetuple()函數將整個時間拆分為結構體:

datetime.now().timetuple()

 要轉換為自定義熟悉的時間表達可以使用strftime()函數,其輸出程式碼格式有以下幾種:

datetime.now().strftime('%Y-%m-%d')

datetime.now().strftime('%m/%d/%Y %H:%M:%S')

二、時間索引

時間索引是根據資料的時間來處理時序資料進行歸檔篩選的一種索引方式。

展示資料:

首先檢視型別是否為 datetime型別,是該型別再重新設定索引,否則需要先把索引時間列轉換為datetime型別再進行設定。

df1.set_index('first_order_time')

 若要查詢2019年的資料,只需要在 後面加上日期即可:

df1['2019']

想要獲取詳細的日期的資料只需要在[]裡面輸入對應的日期即可:

df1['2019-05-13']

獲取區間日期資料:

df1['2019-05-01':'2019-05-13']

三、時間推移

 如果時序資料提取出來時間並不符合對應時間戳,則可以使用timedelta進行推移時間:

timedelta類表示為時間差,可直接範例化也可以由兩個datetime進行相減操作得到。

可表示的時間差依次為:

days,seconds,microseconds,minutes,hours,weeks

 如我們要推移一天時間:

date = datetime(2019,5,10)
date+timedelta(days = 1)

 往後推移只需要減去對應天數就好了。

比起timedelta,有date offset可以直接進行時間推移,並不需要換算,效率比timedelta要快很多。

引入庫:

from pandas.tseries.offsets import Day,Hour,Minute
date+Day(1)

計算結果為timestamp: 

到此這篇關於Pandas處理時間序列資料操作詳解的文章就介紹到這了,更多相關Pandas時間序列內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com