本系列內容所用Python/ target=_blank class=infotextkey>Python版本為anaconda,直接瀏覽器搜索下載安裝即可!
今天的內容我們來簡單了解一下Python的pandas第三方庫,他和numpy庫一樣,也是在科學計算方面提供了很多數據結構和方法,非常強大好用。
一、pandas庫
pandas庫主要由兩種基礎數據結構:Series和DataFrame,以及操作這兩種數據結構的方法構成。其中Series是一維數據結構,而DataFrame是二維數據結構,要說他們和ndarray數據對象的區別,那大概就是他們都具有數據標簽這一屬性,而ndarray對象沒有。
二、Series對象
1.Series數據類型由一列數據及與之對應的標簽兩部分組成,series對象本質是numpy數組,因此numpy函數同樣適用于series對象。每個series對象實際由兩個數組組成,具有index和values兩大屬性。
2.Series對象的創建
index:是從numpy數組繼承的index對象
values:保存值,是一維的numpy對象
Series對象的創建是通過Series類的構造函數Series函數來實現的,創建Series對象時可以同時為index和values屬性賦值。
創建空的Series對象
同時指定values和index屬性
沒有index屬性
對已創建的series對象添加新的元素
Series對象修改和添加元素
可以把series對象看成有序的字典,通過字典數據來創建
series對象的values屬性取值由一維數組構成,用不同方法生成的一維數組都可以作為values屬性的取值
總結:Series對象都是通過Series類的Series函數創建的,其中參數可以是單獨的字典,或values屬性參數為任何一維數組表達式
3.Series對象元素的提取與切片
通過方法提取元素
head()方法,提取對象前部分元素,參數可以選填,默認為前5條
tail()方法,提取后半部分元素,參數可以選填,默認為后5條
take()方法,指定索引值提取
利用位置或標簽索引提取元素與切片
Series對象不僅可以通過位置索引提取元素,還可以通過標簽索引提取元素,同時不僅可以使用位置索引數組提取元素,還可以使用標簽索引數組提取元素
切片
Series對象也支持位置索引切片和標簽索引切片,兩者的區別是,位置索引切片不包括終止值元素,而標簽索引切片包含終止標簽元素
三、時間序列基礎
時間序列分析在金融數據分析中占據重要的位置,pandas庫也支持時間序列數據類型,時間序列類型是一種特殊的Series類型,與一般Series類型不同的是,時間序列的index屬性為時間戳
1.創建時間序列
時間序列的創建方式與一般的Series對象創建方式相同,只不過其中的index屬性為Timestampd對象
Timestamp對象由pandas庫中的Timestamp()方法創建,Timestamp()方法的傳入參數可以是字符串,也可以是datetime對象
不過由于Timestamp方法不接受可迭代對象作為參數輸入,所以當我們創建時間序列時需要對每個元素單獨操作一次Timestamp方法,這樣就顯得很麻煩,因此一般使用pandas庫中的to_datetime方法將Series的index屬性轉換為DatetimeInedx
實際上,對于datetime對象,pandas會自動將其轉換成Timestamp對象,所以我們可以直接將datetime對象列表作為時間序列的indx
2.時間序列提取元素
時間序列只是特殊的Series對象,一般的索引操作對其仍然有效
簡化時間提取元素
3.滯后或超前操作
滯后操作是指將t期數據置換成t-i期數據,而超前操作是指將t期數據置換成t+i期數據,這在實際應用中很常見,在計算收益率的時候,我們可以簡單的將數據滯后1期,然后用原來的數據減滯后過的數據,再除以滯后過的數據就得到了收益率
shift中參數正數為滯后,負數為超前
好了,今天的學習內容到這里也將告一段落了,明天我們再接再厲!