一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Python數(shù)據(jù)分析筆記——Numpy、Pandas庫

 ly88 2017-03-18

Python數(shù)據(jù)分析——Numpy、Pandas庫

總第48篇



利用Python進(jìn)行數(shù)據(jù)分析中有兩個重要的庫是Numpy和Pandas,本章將圍繞這兩個庫進(jìn)行展開介紹。


Numpy庫



Numpy最重要的一個特點是就是其N維數(shù)組對象,即ndarray,ndarray是一個通用的同構(gòu)數(shù)據(jù)多維容器,其中的所有元素必須是相同類型的。每個數(shù)組都有一個shape(一個表示各維度大小的元組,即表示有幾行幾列)和dtype(一個用于說明數(shù)組數(shù)據(jù)類型的對象)。本節(jié)將圍繞ndarray數(shù)組展開。



 

Numpy基礎(chǔ)


1、創(chuàng)建ndarray數(shù)組


使用array函數(shù),它接受一切序列型的對象,包括其他數(shù)組,然后產(chǎn)生一個新的Numpy數(shù)組。



嵌套序列將會被轉(zhuǎn)換成一個多維數(shù)組。



np.array會嘗試為每一個新建的數(shù)組推斷出適合它的數(shù)據(jù)類型。

arange是Python內(nèi)置函數(shù)range的數(shù)組版。



2、數(shù)據(jù)類型


dtype是一個用來說明數(shù)組的數(shù)據(jù)類型的對象。其命名方式是一個類型名(float和int)后面跟一個用于表示各元素位長的數(shù)字。常用的是float64和int32.



也可以使用astype進(jìn)行數(shù)組中數(shù)據(jù)類型的轉(zhuǎn)化。



3、基本的索引和切片


(1)元素索引、根據(jù)元素在數(shù)組中的位置來進(jìn)行索引。


一維數(shù)組的索引



多維數(shù)組的索引



(2)切片索引


一維數(shù)組的切片索引(與Python列表的切片索引一樣



多維數(shù)組的切片索引



(3)花式索引


元素索引和切片索引都是僅局限于連續(xù)區(qū)域的值,而花式索引可以選取特定區(qū)域的值。



上述語句選出的是元素(1,0)、(5,3)、(7,1)、(2,2)。



上述語句按0、3、1、2列的順序依次顯示1、5、7、2行。下述語句能實現(xiàn)同樣的效果。



 

Numpy數(shù)組的基本運算


1、數(shù)組和標(biāo)量之間的預(yù)算



2、元素級數(shù)組函數(shù)


是指對數(shù)組中每個元素執(zhí)行函數(shù)運算。下面例子是對數(shù)組各元素執(zhí)行平方根操作。還有abs、exp、sin、cos、log、sum、mean(算術(shù)平均數(shù))、cumsum(所有元素的累計和)、cumprod(所有元素的累計積)、sort(將元素進(jìn)行排序)等函數(shù)。



Pandas庫



 

Pandas數(shù)據(jù)結(jié)構(gòu)


1、Series


(1)概念:


Series是一種類似于一維數(shù)組的對象,它由一組數(shù)據(jù)以及一組與之相關(guān)的數(shù)據(jù)標(biāo)簽(即索引)組成。


(2)創(chuàng)建Series


a、通過series來創(chuàng)建



Series的字符串表現(xiàn)形式為:索引在左邊,值在右邊。當(dāng)我們沒有為數(shù)據(jù)指定索引時,Series會自動創(chuàng)建一個0到N-1(N為數(shù)據(jù)的長度)的整數(shù)型索引。可以通過Series的values和index屬性獲取其數(shù)組的值和對應(yīng)的屬性。



也可以在創(chuàng)建Series的時候為值直接創(chuàng)建索引。



b、通過字典的形式來創(chuàng)建Series。



(3)獲取Series中的值


通過索引的方式選取Series中的單個或一組值。



  2、DataFrame


(1)概念:


DataFrame是一個表格型的數(shù)據(jù)結(jié)構(gòu),含有一組有序的列,每列可以是不同的值類型(數(shù)值、字符串、布爾值等)。DataFrame既有行索引也有列索引,其中的數(shù)據(jù)是以一個或多個二維塊存放的,而不是列表、字典或別的一維數(shù)據(jù)結(jié)構(gòu)。



(2)創(chuàng)建DataFrame:


最常用的一種方法是直接傳入一個等長列表或numpy數(shù)組組成的字典:



結(jié)果DataFrame會自動加上索引(添加方法與Series一樣),且全部列會被有序排列。



如果指定了列序列、索引,則DataFrame的列會按指定順序及索引進(jìn)行排列。



也可以設(shè)置DataFrame的index和columns的name屬性,則這些信息也會被顯示出來。



(3)獲取DataFrame的值(行或列)


通過查找columns值獲取對應(yīng)的列。(下面兩種方法)



通過索引字段ix查找相應(yīng)的行。



(4)對列進(jìn)行賦值處理。


對某一列可以賦一個標(biāo)量值也可以是一組值。


也可以給某一列賦值一個列表或數(shù)組,其長度必須跟DataFrame長度相匹配。如果賦值的是一個Series,則對應(yīng)的索引位置將被賦值,其他位置的值被賦予空值。



 

Pandas基本功能


1、重新索引


Pandas對象的一個方法就是重新索引(reindex),其作用是創(chuàng)建一個新的索引,pandas對象將按這個新索引進(jìn)行排序。對于不存在的索引值,引入缺失值。



也可以按columns(行)進(jìn)行重新索引,對于不存在的列名稱,將被填充空值。



對于不存在的索引值帶來的缺失值,也可以在重新索引時使用fill_value給缺失值填充指定值。



對于缺失值除使用fill_value的方式填充特定值以外還可以使用method=ffill(向前填充、即后面的缺失值用前面非缺失值填充)、bfill(向后填充,即前面的缺失值用后面的非缺失值填充)。


2、丟棄指定軸上的項


使用drop方法刪除指定索引值對應(yīng)的對象。



可以同時刪除多個索引對應(yīng)的值。



對于DataFrame,可以刪除任意軸上(columns)的索引值。


3、算數(shù)運算和數(shù)據(jù)對齊


(1)Series 與Series之間的運算


將不同索引的對象進(jìn)行算數(shù)運算,在將對象進(jìn)行相加時,如果存在時,則結(jié)果的索引就是該索引的并集,而結(jié)果的對象為空。



(2)DataFrame與Series之間的運算


將DataFrame的每一行與Series分別進(jìn)行運算。(索引相同的進(jìn)行算數(shù)運算,索引不同的被賦予空值)



4、排序和排名


根據(jù)某種條件對數(shù)據(jù)集進(jìn)行排序。


(1)Series數(shù)據(jù)結(jié)構(gòu)的排序和排名


a、按索引值進(jìn)行排序



b、按值進(jìn)行排序



默認(rèn)情況下,排序是按升序排列的,但也可通過ascending=False進(jìn)行降序排列。



排名跟排序不同的是,排名會增設(shè)一個排名值。obj.rank()



(2)DataFrame數(shù)據(jù)結(jié)構(gòu)的排序和排名


按索引值進(jìn)行排列,一列或多列中的值進(jìn)行排序,通過by將列名傳遞給sort_index.



5、缺失數(shù)據(jù)處理


(1)濾出缺失數(shù)據(jù)


使用data.dropna()可以濾出缺失數(shù)據(jù),默認(rèn)情況下,data.dropna()濾出含有缺失值的所有行(是含有缺失數(shù)據(jù)的那一整行)。


傳入how=‘a(chǎn)ll’將只濾出全是缺失值的那一行。


要用這種方式濾出列,只需傳入axis=1即可。

 

(2)填充缺失數(shù)據(jù)


通過調(diào)用函數(shù)fillna,并給予這個函數(shù)一個值,則該數(shù)組中所有的缺失值都將被這個值填充。df.fillna(0)——缺失值都將被0填充。

 

也可以給fillna函數(shù)一個字典,就可以實現(xiàn)對不同的列填充不同的值。


Df.fillna({1:0.5,3:-1})——1列的缺失值用0.5填充,3列的缺失值用-1填充。(列從0開始計數(shù))



6、匯總和計算描述統(tǒng)計


就是針對數(shù)組進(jìn)行常用的數(shù)學(xué)和統(tǒng)計運算。大部分都屬于約簡和匯總統(tǒng)計。

其中有求和(sum)運算、累計(cumsum)運算、平均值(mean)等運算。這些運算默認(rèn)都是針對于行的運算,通過使用axis=1進(jìn)行列的運算。

 

Describe既不是約簡型也不是累計型,他是用于一次性產(chǎn)生多個匯總統(tǒng)計指標(biāo)的運算。根據(jù)數(shù)組中數(shù)據(jù)的類型不同,產(chǎn)生的統(tǒng)計指標(biāo)不同,有最值、分位數(shù)(四分位、四分之三)、標(biāo)準(zhǔn)差、方差等指標(biāo)。



7、唯一值的獲取



此方法可以用于顯示去重后的數(shù)據(jù)。


8、值計數(shù)


用于計算一個Series中各值出現(xiàn)的次數(shù)。 



9、層次化索引


層次化索引是pandas的一個重要功能,它的作用是使你在一個軸上擁有兩個或多個索引級別。相當(dāng)于Excel中vlookup函數(shù)的多條件查找中的多條件。 



對于層次化索引對象,選取數(shù)據(jù)的方式可以通過內(nèi)層索引,也可以通過外層索引來選取,選取方式和單層索引選取的方式一致。 



    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲一区二区三区四区| 亚洲欧美日本成人在线| 亚洲一区二区三区四区性色av| 亚洲a级一区二区不卡| 国产成人精品国产亚洲欧洲| 日本乱论一区二区三区 | 久久精品国产99精品亚洲| 日本女优一区二区三区免费| 亚洲超碰成人天堂涩涩| 精品日韩欧美一区久久| 日韩精品成区中文字幕| 免费在线成人激情视频| 日韩人妻少妇一区二区| 亚洲av熟女一区二区三区蜜桃| 久久久精品区二区三区| 亚洲国产性感美女视频| 色哟哟精品一区二区三区| 午夜福利黄片免费观看| 99久久精品国产麻豆| 玩弄人妻少妇一区二区桃花| 国产户外勾引精品露出一区| 久久天堂夜夜一本婷婷| 国产美女网红精品演绎| 91亚洲人人在字幕国产| 中文字幕乱码免费人妻av| 性欧美唯美尤物另类视频| 国产欧美一区二区另类精品| 成人午夜激情免费在线| 粉嫩国产一区二区三区在线| 午夜精品一区二区av| 国产剧情欧美日韩中文在线| 十八禁日本一区二区三区| 国产又粗又长又爽又猛的视频| 国产白丝粉嫩av在线免费观看| 欧美夫妻性生活一区二区| 国产成人高清精品尤物| 中文字幕中文字幕在线十八区 | 97人妻人人揉人人躁人人| 婷婷一区二区三区四区| 国产精品成人又粗又长又爽| 国产一区在线免费国产一区|