Pandas(I)—Series

今天,要跟大家分享一個在Python裡很重要的一個模組—Pandas! 什麼是Pandas呢? 對於初次接觸的人來說,我們可以把他想像成是Python中的Excel! 簡單來說,在Excel中可以做得到事情,在Pandas裡面幾乎都可以輕易地做到!Pandas在金融領域中尤其重要!舉凡資蒐集、彙整、回測、風險控管等等,樣樣難不倒他!事不遲疑,讓我們一起來認識Pandas吧!

在Pandas裡面,主要包含兩種資料結構,分別為Series與DataFrame。Series為單行資料,可以是時間序列資料(Time Series Data),亦可以是橫斷面資料(Cross-sectional Data)。而DataFrame就像Excel的介面一樣,可以包含多個行與列的資料,故資料可為方格資料(Panel Data),可同時包含橫斷面資料與時間序列資料。

(一)引入Pandas

在使用Pandas之前,首先,我們要先引入這個模組,方法如下。

這樣,我們之後要呼叫pandas裡面的功能時,就可直接用”pd”呼叫了!

(二) Series

Series為一維度(one-dimensional array)的資料結構。

接下來,讓我們一起進入Series的世界吧!

1.建立Series

在引入pandas模組之後,我們只要輸入pd.Series(資料),就可以直接建構起一個series的資料結構,如下圖所示。

在這邊我們也可以注意到,Series的資料結構會主動給予每筆資料index,從0開始。另外,從型態上(type),我們也可以很清楚的看到,資料存在於series的資料結構裡面。

2. 將numpy的資料轉換為Series的資料結構

很多時候,其實我們已經有了整筆資料,然而,因為我們需要使用pandas裡面的功能,所以必須把資料型態轉換為pandas裡面可以處理的態樣,Series或DataFrame。在這邊,我們可以想像常把資料匯入Excel裡面,才能夠用Excel的功能來分析處理數據內容。

舉例來說,我們可以用先前所學的numpy模組來建立抽樣資料,資料形態一開始為array。透過pd.Series(資料變數名稱),則可以立即將資料型態由array轉換為Series (如下圖的type所示),後續將可使用pandas模組裡面的功能,相當方便。

在這邊可以看到,除了型態的轉換外,在Series的資料結構中,也直接顯示了index。若是我們想幫index取名字,也可以透過直接指定的方式,如下圖所示。

3.從dictionary建立series

還記得python基礎資料結構中的dictionary嗎? 在dictionary的資料結構中,每筆資料都包含一個key跟相對應的values。從dictionary轉換到Series的過程中,這個key就可以合理的直接變成index,也就是說,透過dictionary,我們不用再做指定,特定的index就渾然天成啦!

4.Series取值

Series的取值方式,非常簡單。主要分為兩種方式,”[]”與”.”。第一種方式為 series名稱[‘索引名稱’],就可以找到該索引名稱相對應的值。第二種方式為 series名稱.索引名稱,亦可以找到該索引名稱相對應的值。依照上例,詳見下圖。

5. vectorised function

先前我們在numpy模組中所討論過的vectorised function,一樣適用在Series唷!

當我們要對series裡面所有元素做相同運算時,直接對整個series做計算即可,範例如下:

另外,我們可以進一步看到,若是我們將series y裡面的’c’改成’d’,在無法計算的情況下,series會聰明的自動補缺值(nan)唷!

6. 時間序列資料

在生成時間序列資料方面,pandas可是相當好用唷! 只要透過 pd.date_range(‘起始日期’, periods=日期長度),就可以立刻建立起日期索引唷!

而這個索引,也可以直接套到我們的資料上面,生成一個完整的time series資料唷!

7. series繪圖

結合我們前幾章節提到的簡單繪圖,Series 也可以超快速的畫出時間序列資料最基本的折線圖唷!

到這邊,相信大家已經對Series有了更進一步的認識。下個單元,我們將介紹可以涵蓋更多維度資料的DataFrame給大家唷!

Share

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *