Pandas 是一個(gè)數(shù)據(jù)分許工具庫(kù),主要用于處理瓤介,存儲(chǔ)坪圾,分析晓折,顯示數(shù)據(jù)
有幾種常用數(shù)據(jù)結(jié)構(gòu),他們之間有共性 也有特殊的地方兽泄,分別為 DataFrame Series Panel Panel4D 他們分別是 2 1 3 4維容器
之所以把DataFrame放在第一個(gè)是因?yàn)樗畛S美旄牛约八幸恍┍容^難理解的特殊性。
其他幾個(gè)數(shù)據(jù)結(jié)構(gòu)都類(lèi)似對(duì)應(yīng)的多維數(shù)組病梢,其直接進(jìn)行[]訪問(wèn)時(shí)是從高維到低維逐層索引胃珍,但是DataFrame不一樣,這個(gè)下面再說(shuō)
所有的這幾個(gè)數(shù)據(jù)結(jié)構(gòu)蜓陌,都有幾個(gè)常用的公共方法和屬性觅彰,首先最重要的是values,可以看到內(nèi)部的原始的多維數(shù)組钮热,而對(duì)每個(gè)維度的索引填抬,類(lèi)似dict的keys(),在這幾個(gè)數(shù)據(jù)結(jié)構(gòu)中都是有特定名字的,例如Series就只有一個(gè)index屬性 表示唯一維度的keys
而DataFrame則是index 和columns 前者是行索引隧期,后者是列索引
我們可以對(duì)此4種結(jié)構(gòu)用他們的loc at iloc iat 來(lái)訪問(wèn) 其中帶i前綴的是直接使用持續(xù)訪問(wèn)飒责,而不是使用keys,loc是定位仆潮,例如一個(gè)Panel4D可以使用p.loc['A']得到一個(gè)Panel 但是不能用p.at['A']得到宏蛉,因?yàn)閍t系列只能得到元素,即如果使用at則只能使用4個(gè)key進(jìn)行訪問(wèn)
對(duì)于上述幾個(gè)方法對(duì)容器進(jìn)行訪問(wèn)性置,都是嚴(yán)格按照高緯到低維的次序來(lái)的拾并,即與直接對(duì)values進(jìn)行多重索引訪問(wèn)即[][][][]這樣的連續(xù)訪問(wèn)是一樣的,但是這里就再次提到了DataFrame的特殊性
按values的結(jié)果鹏浅,DataFrame中行為高維嗅义,列為低維,但是直接對(duì)DataFrame進(jìn)行索引訪問(wèn)時(shí)隐砸,即形如D['key']方式進(jìn)行訪問(wèn)時(shí)芥喇,是在對(duì)其列進(jìn)行訪問(wèn),這里可以看作一個(gè)便利措施凰萨,方便進(jìn)行列提取,因?yàn)镈ataFrame是最常用 結(jié)構(gòu) 械馆,而單獨(dú)訪問(wèn)一列也是一種極其常用的操作
對(duì)其其他容器不存在這個(gè)情況胖眷,但是要注意的是,此4種結(jié)構(gòu)都可以以層層疊加的形式進(jìn)行構(gòu)造霹崎,即可以構(gòu)造一個(gè)Series為元素的字典珊搀,然后直接以此為參數(shù)構(gòu)造DataFrame 然后再此DataFrame為元素構(gòu)造字典,再創(chuàng)建Panel尾菇,依此類(lèi)推
Panel中 最高維到最低維依次為items major_axis minor_axis 而Panel4D在items前面加了個(gè)labels軸
需要注意的是Panel以上的境析,即3維以上的容器就不能使用describe mean等統(tǒng)計(jì)函數(shù)囚枪,否則會(huì)報(bào)錯(cuò)
對(duì)于這些容器,除了可以使用字典層疊進(jìn)行構(gòu)造外劳淆,還可以使用array-like做數(shù)據(jù)對(duì)象链沼,額外提供所需維度的keys列表進(jìn)行構(gòu)造,例如Series就可以傳入一個(gè)一維數(shù)組或者一維元組或者一維ndarray什么的進(jìn)行構(gòu)造沛鸵,但是要額外提供一個(gè)index參數(shù)括勺,類(lèi)型為一個(gè)列表,作為第0維的索引曲掰,而DataFrame則需要傳入二維數(shù)組和index以及columns參數(shù)
對(duì)于其他容器疾捍,也是直接在構(gòu)造時(shí)傳入對(duì)應(yīng)名字的參數(shù)做不同維度的索引即可
對(duì)于索引,不僅可以傳入列表之類(lèi)還可以傳入Pandas的內(nèi)建的array-like類(lèi)對(duì)象栏妖,例如RangeIndex就是一個(gè)類(lèi)似數(shù)組的可以通過(guò)索引訪問(wèn)的類(lèi)
其他常用函數(shù)文檔可以查到 這里不再多說(shuō)乱豆,順帶一提就是每個(gè)容器都有copy函數(shù)用來(lái)進(jìn)行深復(fù)制