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






