python數(shù)據(jù)分析與應(yīng)用 第4章 pandas統(tǒng)計分析基礎(chǔ)_第1頁
python數(shù)據(jù)分析與應(yīng)用 第4章 pandas統(tǒng)計分析基礎(chǔ)_第2頁
python數(shù)據(jù)分析與應(yīng)用 第4章 pandas統(tǒng)計分析基礎(chǔ)_第3頁
python數(shù)據(jù)分析與應(yīng)用 第4章 pandas統(tǒng)計分析基礎(chǔ)_第4頁
python數(shù)據(jù)分析與應(yīng)用 第4章 pandas統(tǒng)計分析基礎(chǔ)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

pandas統(tǒng)計分析基礎(chǔ)1創(chuàng)建透視表與交叉表目錄使用分組聚合進行組內(nèi)計算2小結(jié)3該方法提供的是分組聚合步驟中的拆分功能,能根據(jù)索引或字段對數(shù)據(jù)進行分組。其常用參數(shù)與使用格式如下。

DataFrame.groupby(by=None,axis=0,level=None,as_index=True,sort=True,group_keys=True,squeeze=False,**kwargs)使用groupby方法拆分數(shù)據(jù)groupby方法的參數(shù)及其說明參數(shù)名稱說明by接收list,string,mapping或generator。用于確定進行分組的依據(jù)。無默認。axis接收int。表示操作的軸向,默認對列進行操作。默認為0。level接收int或者索引名。代表標(biāo)簽所在級別。默認為None。as_index接收boolearn。表示聚合后的聚合標(biāo)簽是否以DataFrame索引形式輸出。默認為True。sort接收boolearn。表示是否對分組依據(jù)分組標(biāo)簽進行排序。默認為True。group_keys接收boolearn。表示是否顯示分組標(biāo)簽的名稱。默認為True。squeeze接收boolearn。表示是否在允許的情況下對返回數(shù)據(jù)進行降維。默認為False。如果傳入的是一個函數(shù)則對索引進行計算并分組。如果傳入的是一個字典或者Series則字典或者Series的值用來做分組依據(jù)。如果傳入一個NumPy數(shù)組則數(shù)據(jù)的元素作為分組依據(jù)。如果傳入的是字符串或者字符串列表則使用這些字符串所代表的字段作為分組依據(jù)。使用groupby方法拆分數(shù)據(jù)groupby方法的參數(shù)及其說明——by參數(shù)的特別說明用groupby方法分組后的結(jié)果并不能直接查看,而是被存在內(nèi)存中,輸出的是內(nèi)存地址。實際上分組后的數(shù)據(jù)對象GroupBy類似Series與DataFrame,是pandas提供的一種對象。GroupBy對象常用的描述性統(tǒng)計方法如下。使用groupby方法拆分數(shù)據(jù)GroupBy對象常用的描述性統(tǒng)計方法方法名稱說明方法名稱說明count計算分組的數(shù)目,包括缺失值。cumcount對每個分組中組員的進行標(biāo)記,0至n-1。head返回每組的前n個值。size返回每組的大小。max返回每組最大值。min返回每組最小值。mean返回每組的均值。std返回每組的標(biāo)準差。median返回每組的中位數(shù)。sum返回每組的和。agg,aggregate方法都支持對每個分組應(yīng)用某函數(shù),包括Python內(nèi)置函數(shù)或自定義函數(shù)。同時這兩個方法能夠也能夠直接對DataFrame進行函數(shù)應(yīng)用操作。在正常使用過程中,agg函數(shù)和aggregate函數(shù)對DataFrame對象操作時功能幾乎完全相同,因此只需要掌握其中一個函數(shù)即可。它們的參數(shù)說明如下表。DataFrame.agg(func,axis=0,*args,**kwargs)DataFrame.aggregate(func,axis=0,*args,**kwargs)使用agg方法聚合數(shù)據(jù)agg和aggregate函數(shù)參數(shù)及其說明參數(shù)名稱說明func接收list、dict、function。表示應(yīng)用于每行/每列的函數(shù)。無默認。axis接收0或1。代表操作的軸向。默認為0??梢允褂胊gg方法一次求出當(dāng)前數(shù)據(jù)中所有菜品銷量和售價的總和與均值,如detail[['counts','amounts']].agg([np.sum,np.mean]))。對于某個字段希望只做求均值操作,而對另一個字段則希望只做求和操作,可以使用字典的方式,將兩個字段名分別作為key,然后將NumPy庫的求和與求均值的函數(shù)分別作為value,如detail.agg({'counts':np.sum,'amounts':np.mean}))。在某些時候還希望求出某個字段的多個統(tǒng)計量,某些字段則只需要求一個統(tǒng)計量,此時只需要將字典對應(yīng)key的value變?yōu)榱斜?,列表元素為多個目標(biāo)的統(tǒng)計量即可,如detail.agg({'counts':np.sum,'amounts':[np.mean,np.sum]}))使用agg方法聚合數(shù)據(jù)agg方法求統(tǒng)計量在agg方法可傳入讀者自定義的函數(shù)。使用自定義函數(shù)需要注意的是NumPy庫中的函數(shù)np.mean,np.median,d,np.sum,np.std,np.var能夠在agg中直接使用,但是在自定義函數(shù)中使用NumPy庫中的這些函數(shù),如果計算的時候是單個序列則會無法得出想要的結(jié)果,如果是多列數(shù)據(jù)同時計算則不會出現(xiàn)這種問題。使用agg方法能夠?qū)崿F(xiàn)對每一個字段每一組使用相同的函數(shù)。如果需要對不同的字段應(yīng)用不同的函數(shù),則可以和Dataframe中使用agg方法相同。使用agg方法聚合數(shù)據(jù)agg方法與自定義的函數(shù)apply方法類似agg方法能夠?qū)⒑瘮?shù)應(yīng)用于每一列。不同之處在于apply方法相比agg方法傳入的函數(shù)只能夠作用于整個DataFrame或者Series,而無法像agg一樣能夠?qū)Σ煌侄?,?yīng)用不同函數(shù)獲取不同結(jié)果。使用apply方法對GroupBy對象進行聚合操作其方法和agg方法也相同,只是使用agg方法能夠?qū)崿F(xiàn)對不同的字段進行應(yīng)用不同的函數(shù),而apply則不行。使用apply方法聚合數(shù)據(jù)applyDataFrame.apply(func,axis=0,broadcast=False,raw=False,reduce=None,args=(),**kwds)使用apply方法聚合數(shù)據(jù)參數(shù)名稱說明func接收functions。表示應(yīng)用于每行/列的函數(shù)。無默認。axis接收0或1。代表操作的軸向。默認為0。broadcast接收boolearn。表示是否進行廣播。默認為False。raw接收boolearn。表示是否直接將ndarray對象傳遞給函數(shù)。默認為False。reduce接收boolearn或者None。表示返回值的格式。默認None。transform方法能夠?qū)φ麄€DataFrame的所有元素進行操作。且transform方法只有一個參數(shù)“func”,表示對DataFrame操作的函數(shù)。同時transform方法還能夠?qū)ataFrame分組后的對象GroupBy進行操作,可以實現(xiàn)組內(nèi)離差標(biāo)準化等操作。若在計算離差標(biāo)準化的時候結(jié)果中有NaN,這是由于根據(jù)離差標(biāo)準化公式,最大值和最小值相同的情況下分母是0。而分母為0的數(shù)在Python中表示為NaN。使用transform方法聚合數(shù)據(jù)1創(chuàng)建透視表與交叉表目錄使用分組聚合進行組內(nèi)計算2小結(jié)3利用pivot_table函數(shù)可以實現(xiàn)透視表,pivot_table()函數(shù)的常用參數(shù)及其使用格式如下。pandas.pivot_table(data,values=None,index=None,columns=None,aggfunc='mean',fill_value=None,margins=False,dropna=True,margins_name='All')使用povit_table函數(shù)創(chuàng)建透視表參數(shù)名稱說明data接收DataFrame。表示創(chuàng)建表的數(shù)據(jù)。無默認。values接收字符串。用于指定想要聚合的數(shù)據(jù)字段名,默認使用全部數(shù)據(jù)。默認為None。index接收string或list。表示行分組鍵。默認為None。columns接收string或list。表示列分組鍵。默認為None。aggfunc接收functions。表示聚合函數(shù)。默認為mean。margins接收boolearn。表示匯總(Total)功能的開關(guān),設(shè)為True后結(jié)果集中會出現(xiàn)名為“ALL”的行和列。默認為False。dropna接收boolearn。表示是否刪掉全為NaN的列。默認為True。pivot_table函數(shù)常用參數(shù)及其說明在不特殊指定聚合函數(shù)aggfunc時,會默認使用numpy.mean進行聚合運算,numpy.mean會自動過濾掉非數(shù)值類型數(shù)據(jù)。可以通過指定aggfunc參數(shù)修改聚合函數(shù)。和groupby方法分組的時候相同,pivot_table函數(shù)在創(chuàng)建透視表的時候分組鍵index可以有多個。通過設(shè)置columns參數(shù)可以指定列分組。當(dāng)全部數(shù)據(jù)列數(shù)很多時,若只想要顯示某列,可以通過指定values參數(shù)來實現(xiàn)。當(dāng)某些數(shù)據(jù)不存在時,會自動填充NaN,因此可以指定fill_value參數(shù),表示當(dāng)存在缺失值時,以指定數(shù)值進行填充??梢愿膍argins參數(shù),查看匯總數(shù)據(jù)。使用povit_table函數(shù)創(chuàng)建透視表pivot_table函數(shù)主要的參數(shù)調(diào)節(jié)交叉表是一種特殊的透視表,主要用于計算分組頻率。利用pandas提供的crosstab函數(shù)可以制作交叉表,crosstab函數(shù)的常用參數(shù)和使用格式如下。由于交叉表是透視表的一種,其參數(shù)基本保持一致,不同之處在于crosstab函數(shù)中的index,columns,values填入的都是對應(yīng)的從Dataframe中取出的某一列。pandas.crosstab(index,columns,values=None,rownames=None,colnames=None,aggfunc=None,margins=False,dropna=True,normalize=False)使用crosstab函數(shù)創(chuàng)建交叉表crosstab函數(shù)參數(shù)名稱說明index接收string或list。表示行索引鍵。無默認。columns接收string或list。表示列索引鍵。無默認。values接收array。表示聚合數(shù)據(jù)。默認為None。aggfunc接收function。表示聚合函數(shù)。默認為None。rownames表示行分組鍵名。無默認。colnames表示列分組鍵名。無默認。dropna接收boolearn。表示是否刪掉全為NaN的。默認為False。margins接收boolearn。默認為True。匯總(Total)功能的開關(guān),設(shè)為True后結(jié)果集中會出現(xiàn)名為“ALL”的行和列。normalize接收boolearn。表示是否對值進行標(biāo)準化。默認為False。使用crosstab函數(shù)創(chuàng)建交叉表crosstab的常用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論