亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

Pandas 統計描述操作

1. 前言

上一節我們學習了 Pandas 庫的分組聚合操作,通過聚合函數對分組后的數據集進行了描述性的統計分析,對于各組數據的分析起到了很好的幫助作用,那 Pandas 庫中除了上節我們講到的一些聚合分析函數,還有哪些實用性較高的統計描述操作方法呢,本節課我們將對統計描述函數展開學習。

2. 描述性統計函數

下面我們列舉了幾個常用的重要函數,上一節已經講述了 count () , sum () , mean () 函數,這里我們將不再講述:

函數名 說明
min 計算最小值
max 計算最大值
cumsum 計算累計總和
describe 計算匯總統計

下面我們通過具體的代碼數據實例看一下各個函數的應用。

1. min()max() 函數

這兩個函數分別用于計算指定數據集中的最小值和最大值,默認的 axis=0 ,按列進行計算。

# 導入pandas包
import pandas as pd
# 初始化數據
df1=pd.DataFrame([[96,92],[85,None],[69,90]],
                 index=[['語文','數學','英語']],
                 columns=[['期中考試','期末考試']])
print(df1)
# --- 輸出結果 ---
    期中考試  期末考試
語文   96     92
數學   85     89
英語   69     90

# min 求數據集的最小值
df1.min()
# --- 輸出結果 ---
期中考試    69
期末考試    89

# max 求數據集的最大值
df1.max()
# --- 輸出結果 ---
期中考試    96
期末考試    92

# 結果解析:通過 min() 和 max() 函數的操作,我們可以看到求出數據集中的最大值和最小值,默認是按列計算,也可以通過參數 axis=1 設置按行計算;

# max 求數據集的最大值 axis=1
df1.max(axis=1)
# --- 輸出結果 ---
語文    96
數學    89
英語    90

2. cumsum() 函數

該函數用于計算累計數值總和,默認的 axis=0 ,按列進行計算,通過數據處理效果要區分和 sum () 函數的區別。

# 導入pandas包
import pandas as pd
# 初始化數據
df1=pd.DataFrame([[96,92,89,94],[85,89,91,90],[69,90,89,88]],
                 index=[['語文','數學','英語']],
                 columns=[['月考1','月考2','月考3','月考4']])
print(df1)
# --- 輸出結果 ---
    月考1 月考2 月考3 月考4
語文  96   92   89   94
數學  85   89   91   90
英語  69   90   89   88

# cumsum 計算累計總和,默認是按列計算
df1.cumsum()
# --- 輸出結果 ---
     月考1  月考2  月考3	月考4
語文	96	  92	89	   94
數學	181	  181	180	   184
英語	250	  271	269	   272
# sum 計算總和,默認是按列計算
df1.sum()
# --- 輸出結果 ---
月考1    250
月考2    271
月考3    269
月考4    272

# 結果解析:cumsum() 函數是累計求和,默認是在列上計算,可以看到各個月考的行數據“數學”是“語文”加“數學”成績的和,“英語”則是“語文”加“數學”加“英語”的和。而 sum() 函數則是計算每列數據的總和,對各行數據沒有影響。

3. describe() 函數

該函數用于計算一些統計數據,提供數據集的基本信息,包括范圍、大小、波動趨勢等待,用于進一步數據的分析,該函數用于計算列數據。該函數有三個核心參數:

參數名 說明
percentile 可選參數,要包含在輸出中的百分位數,在 0-1 之間,默認 [.25, .5, .75]
include 可選參數,包括的不同數據類型列表,默認只計算數值型,當為 all 時匯總的是所有列的數據;當為 object 時,匯總的是字符串列的數據;當為 number 時,匯總的是數字列的數據。
exclude 可選參數,排除的數據類型列表

下面我們通過代碼操作數據集看一下詳細的使用方法:

# 導入pandas包
import pandas as pd
# 初始化數據
df1=pd.DataFrame([[96,92,89,94,'A級'],[85,89,91,90,'C級'],[69,90,89,88,'B級']],
                 index=[['語文','數學','英語']],
                 columns=[['月考1','月考2','月考3','月考4','表現級別']])
print(df1)
# --- 輸出結果 ---
   月考1 月考2 月考3 月考4 表現級別
語文  96  92  89  94    A級
數學  85  89  91  90    C級
英語  69  90  89  88    B級

# describe 函數
df1.describe()
# --- 輸出結果 ---
	     月考1	    月考2	       月考3	     月考4
count	3.000000	3.000000	2.000000	3.000000
mean	83.333333	90.333333	90.000000	90.666667
std		13.576941	1.527525	1.414214	3.055050
min		69.000000	89.000000	89.000000	88.000000
25%		77.000000	89.500000	89.500000	89.000000
50%		85.000000	90.000000	90.000000	90.000000
75%		90.500000	91.000000	90.500000	92.000000
max		96.000000	92.000000	91.000000	94.000000
# 結果解析:可以看到 describe() 函數統計分析后,默認的是只計算數值型,包含了多種分析信息,count:數據數量,mean:平均值,std:標準差,min:最小值,25%,50%,75%:對應的百分位上的分位數(計算方式為最大值減去最小值乘以對應的百分位,再加上最小值),max:最大值。這些統計項能清晰的讓我們了解一組數據集的數據情況,進而選擇合適的分析模型進行分析。

# describe  設置include=‘all’
df1.describe(include='all')
# --- 輸出結果 ---
	    月考1	       月考2	     月考3	    月考4	      表現級別
count	3.000000	3.000000	3.000000	3.000000	3
unique	NaN	        NaN	        NaN	        NaN	        3
top	    NaN	        NaN	        NaN	        NaN	        C級
freq	NaN	        NaN	        NaN     	NaN      	1
mean	83.333333	90.333333	89.666667	90.666667	NaN
std	    13.576941	1.527525	1.154701	3.055050	NaN
min	    69.000000	89.000000	89.000000	88.000000	NaN
25%	    77.000000	89.500000	89.000000	89.000000	NaN
50%	    85.000000	90.000000	89.000000	90.000000	NaN
75%	    90.500000	91.000000	90.000000	92.000000	NaN
max	    96.000000	92.000000	91.000000	94.000000	NaN
# 結果解析:通過設置 include='all' describe() 函數計算所有列的數據,并且針對字符串型的數據會有 unique:不同的值有多少;top:出現頻率最高的;freq:重復的次數。

# describe 排除數值列 exclude=‘number’
df1.describe(exclude='number')
# --- 輸出結果 ---
	    表現級別
count	 3
unique	 3
top	     C級
freq	 1
# 結果解析:通過設置 exclude 排除數值列,可以看到最后的描述性統計只有字符串列的數據。

3. 小結

本節課程我們主要學習了 Pandas 庫中用于統計描述的操作函數,幫助我們便捷的對數據集進行統計分析工作,并在此基礎上開展進一步的數據分析工作。本節課程的重點如下:

  • 常用的描述性統計函數使用,尤其是 describe () 函數的使用。