小蛇學python(17)時間序列的數(shù)據(jù)處理

不管是在金融學、經(jīng)濟學的社會學科領域,還是生態(tài)學、系統(tǒng)神經(jīng)的自然學科領域,時間序列數(shù)據(jù)都是一種重要的結(jié)構化數(shù)據(jù)形式。

jupyter notebook在pycharm中的使用

我也是最近無意中才發(fā)現(xiàn),jupyter notebook可以在pycharm中使用的。在寫教學文檔方面,因為jupyter有著像命令行一樣即時輸出的特點,比建立工程運行的方式要方便許多。將這個小功能推薦給大家,也建議大家在學習python的時候多用用jupyter。

基礎

image.png

從這個小例子也可以看出jupyter notebook的好處,非常適合新手學習python的時候使用。同時這個例子也是最基礎的時間序列類型。

datetime以毫秒形式存儲日期和時間,兩個日期相減得到所差毫秒數(shù),同時也可以換算成天數(shù)和小時數(shù)。

image.png

在日常生活中,時間通常是以字符串的形式保存的,python中也提供了字符串和datetime相互轉(zhuǎn)換的方法。

image.png

以下是常用的格式化編碼。

代碼 說明
%Y 4位數(shù)的年
%y 2位數(shù)的年
%m 2位數(shù)的月
%d 2位數(shù)的日
%H 24小時制的時
%I 12小時制的時
%M 2位數(shù)的分
%S 秒[0, 61], 60、61用于閏秒
%w 用整數(shù)表示的星期幾

通過已知格式對日期進行解析當然最準確的做法,但是這種做法過于準確而顯得比較麻煩。這種情況下,可以這樣做。

image.png

從上圖可以看出,parse解析器的功能相當強大,很多格式隨意的時間字符串都可以解析成正確的時間。當然,遺憾的是,中文不可以。

下面我們來建立一個時間序列的數(shù)據(jù)集。

image.png

然后我們開始學習如何索引、選取、以及構造子集。

image.png

一門語言有一門語言的特色,其實pandas、numpy、還有現(xiàn)在學習的時間序列,它們對數(shù)據(jù)的索引選取都是大同小異的。只要掌握其中一個,其他包的索引基本也就都會了。

這一點在不同包的函數(shù)命名上也有所體現(xiàn)。細心的朋友可以發(fā)現(xiàn),我并沒有介紹data_range()這個函數(shù),其實它和numpy中的range()是一樣的,只有一些細節(jié),參數(shù)會有變化。

比如。

image.png

freq這個參數(shù)可以決定取樣的類型,BM就代表取每個月的最后一天。怎么說呢,越用越感覺到python的完善與強大。freq這個參數(shù)可以選擇的類型有很多。如下是我經(jīng)常用到總結(jié)下來的。

代碼 說明
D
B 工作日
H
T
S
L 毫秒
U 微秒
BM 每月最后一個工作日

移動與滯后數(shù)據(jù)也是一個很常見的操作。

image.png

重采樣、頻率轉(zhuǎn)換

上面介紹了一些有關時間序列的基礎操作,接下來介紹一些進階內(nèi)容。
在做實驗的時候,我們最常涉及的就是采樣。

image.png
image.png
image.png

我們發(fā)現(xiàn)這段程序所實現(xiàn)的功能是,每五分鐘采樣,并將該五分鐘內(nèi)的值求和賦給新采樣的頻率。

以上是降采樣,升采樣是一樣的,只不過可能會有一些插值操作,這里不予介紹。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容