溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python怎么用Pandas模塊實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)分析

發(fā)布時(shí)間:2021-06-25 09:16:39 來(lái)源:億速云 閱讀:158 作者:chen 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容主要講解“Python怎么用Pandas模塊實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)分析”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Python怎么用Pandas模塊實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)分析”吧!

一、groupby函數(shù)

Python中的groupby函數(shù),它主要的作用是進(jìn)行數(shù)據(jù)的分組以及分組之后的組內(nèi)的運(yùn)算,也可以用來(lái)探索各組之間的關(guān)系,首先我們導(dǎo)入我們需要用到的模塊

import pandas as pd

首先導(dǎo)入我們所需要用到的數(shù)據(jù)集

customer = pd.read_csv("Churn_Modelling.csv")
marketing = pd.read_csv("DirectMarketing.csv")

我們先從一個(gè)簡(jiǎn)單的例子著手來(lái)看,

customer[['Geography','Gender','EstimatedSalary']].groupby(['Geography','Gender']).mean()

Python怎么用Pandas模塊實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)分析

從上面的結(jié)果可以得知,在“法國(guó)”這一類(lèi)當(dāng)中的“女性(Female)”這一類(lèi)的預(yù)估工資的平均值達(dá)到了99564歐元,“男性”達(dá)到了100174歐元

當(dāng)然除了求平均數(shù)之外,我們還有其他的統(tǒng)計(jì)方式,比如“count”、“min”、“max”等等,例如下面的代碼

customer[['Geography','Gender','EstimatedSalary']].groupby(['Geography','Gender']).agg(['mean','count','max'])

Python怎么用Pandas模塊實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)分析

當(dāng)然我們也可以對(duì)不同的列采取不同的統(tǒng)計(jì)方式方法,例如

customer[['Geography','EstimatedSalary','Balance']].groupby('Geography').agg({'EstimatedSalary':'sum', 'Balance':'mean'})

Python怎么用Pandas模塊實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)分析

我們對(duì)“EstimatedSalary”這一列做了加總的操作,而對(duì)“Balance”這一列做了求平均值的操作

二、Crosstab函數(shù)

在處理數(shù)據(jù)時(shí),經(jīng)常需要對(duì)數(shù)據(jù)分組計(jì)算均值或者計(jì)數(shù),在Microsoft Excel中,可以通過(guò)透視表輕易實(shí)現(xiàn)簡(jiǎn)單的分組運(yùn)算。而對(duì)于更加復(fù)雜的分組計(jì)算,“Pandas”模塊中的“Crosstab”函數(shù)也能夠幫助我們實(shí)現(xiàn)。

例如我們想要計(jì)算不同年齡階段、不同性別的平均工資,同時(shí)保留一位小數(shù),代碼如下

pd.crosstab(index=marketing.Age, columns=marketing.Gender, values=marketing.Salary, aggfunc='mean').round(1)

Python怎么用Pandas模塊實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)分析

當(dāng)然我們還可以用該函數(shù)來(lái)制作一個(gè)更加復(fù)雜一點(diǎn)的透視表,例如下面的代碼

pd.crosstab(index=[marketing.Age, marketing.Married], columns=marketing.Gender,values=marketing.Salary, aggfunc='mean', margins=True).round(1)

Python怎么用Pandas模塊實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)分析

三、Pivot_table函數(shù)

和上面的“Cross_tab”函數(shù)的功能相類(lèi)似,對(duì)于數(shù)據(jù)透視表而言,由于它的靈活性高,可以隨意定制你的分析計(jì)算要求,而且操作性強(qiáng),因此在實(shí)際的工作生活當(dāng)中被廣泛使用,

例如下面的代碼,參數(shù)“margins”對(duì)應(yīng)表格當(dāng)中的“All”這一列

pd.pivot_table(data=marketing, index=['Age', 'Married'], columns='Gender', values='Salary', aggfunc='mean', margins=True).round(1)

Python怎么用Pandas模塊實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)分析

四、Sidetable函數(shù)

“Sidetable”可以被理解為是“Pandas”模塊中的第三方的插件,它集合了制作透視表以及對(duì)數(shù)據(jù)集做統(tǒng)計(jì)分析等功能,讓我們來(lái)實(shí)際操作一下吧

首先我們要下載安裝這個(gè)“Sidetable”組件,

pip install sidetable

五、Freq函數(shù)

首先介紹的是“Sidetable”插件當(dāng)中的“Freq”函數(shù),里面包含了離散值每個(gè)類(lèi)型的數(shù)量,其中是有百分比形式來(lái)呈現(xiàn)以及數(shù)字的形式來(lái)呈現(xiàn),還有離散值每個(gè)類(lèi)型的累加總和的呈現(xiàn),具體大家看下面的代碼和例子

import sidetable
marketing.stb.freq(['Age'])

Python怎么用Pandas模塊實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)分析

“Age”這一列有三大類(lèi)分別是“Middle”、“Young”以及“Old”的數(shù)據(jù),例如我們看到表格當(dāng)中的“Middle”這一列的數(shù)量有508個(gè),占比有50.8%

marketing.stb.freq(['Age'], value='AmountSpent')

Python怎么用Pandas模塊實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)分析

例如上面的代碼,顯示的則是比方說(shuō)當(dāng)“Age”是“Middle”的時(shí)候,也就是中年群體,“AmountSpent”的總和,也就是花費(fèi)的總和是762859元

六、Missing函數(shù)

“Sidetable”函數(shù)當(dāng)中的“Missing”方法顧名思義就是返回缺失值的數(shù)量以及百分比,例如下面的代碼,“History”這一列的缺失值占到了30.3%

marketing.stb.missing()

Python怎么用Pandas模塊實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)分析

七、Counts函數(shù)

“Sidetable”函數(shù)當(dāng)中的“counts”方法用來(lái)計(jì)算各個(gè)類(lèi)型的離散值出現(xiàn)的數(shù)量,具體看下面的例子

marketing.stb.counts()

Python怎么用Pandas模塊實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)分析

例如“Gender”這一列中,總共有兩個(gè),也就是“unique”這一列所代表的值,其中“Female”占到的比重更大,有506個(gè),而“Male”占到的比重更小一些,有494個(gè)

到此,相信大家對(duì)“Python怎么用Pandas模塊實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)計(jì)分析”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI