Lesson6——Pandas Pandas描述性統計

cute_Learner發表於2022-02-06

pandas目錄

1 簡介

  描述統計學(descriptive statistics)是一門統計學領域的學科,主要研究如何取得反映客觀現象的資料,並以圖表形式對所蒐集的資料進行處理和顯示,最終對資料的規律、特徵做出綜合性的描述分析。

  下列表格對 Pandas 常用的統計學函式做了簡單的總結:

函式名稱描述說明
count() 統計某個非空值的數量。
sum() 求和
mean() 求均值
median() 求中位數
mode() 求眾數
std() 求標準差
min() 求最小值
max() 求最大值
abs() 求絕對值
prod() 求所有數值的乘積。
cumsum() 計算累計和,axis=0,按照行累加;axis=1,按照列累加。
cumprod() 計算累計積,axis=0,按照行累積;axis=1,按照列累積。
corr() 計算數列或變數之間的相關係數,取值-1到1,值越大表示關聯性越強。

  在 DataFrame 中,使用聚合類方法時需要指定軸(axis)引數。下面介紹兩種傳參方式:

    • 對行操作,預設使用 axis=0 或者使用 "index";
    • 對列操作,預設使用 axis=1 或者使用 "columns"。

    

  從上圖可看出,axis=0 表示按垂直方向進行計算,而 axis=1 則表示按水平方向

  建立一個 DataFrame 結構,如下所示:

d = {'Name':pd.Series(['Jack','Blair','Jane','Lee']),
      'Age':pd.Series([11,12,13,14]),
     'Score':pd.Series([1,2,3,4])
    }
df = pd.DataFrame(d)
print(df)

  輸出結果:

    Name  Age  Score
0   Jack   11      1
1  Blair   12      2
2   Jane   13      3
3    Lee   14      4

2 應用

2.1 sum()求和

  在預設情況下,返回 axis=0 的所有值的和。示例1 如下:

df.sum()

  輸出結果:

Name     JackBlairJaneLee
Age                    50
Score                  10
dtype: object

  注意:sum() 和 cumsum() 函式可以同時處理數字和字串資料。雖然字元聚合通常不被使用,但使用這兩個函式並不會丟擲異常;而對於 abs()、cumprod() 函式則會丟擲異常,因為它們無法操作字串資料。

  示例2

df.sum(axis= 1)#只對number資料進行處理

  輸出結果:

0    12
1    14
2    16
3    18
dtype: int64

2.2 mean()求均值

  示例3

df.mean()#只對number資料進行處理

  輸出結果:

Age      12.5
Score     2.5
dtype: float64

  示例4

df.mean(axis=1)#只對number資料進行處理

  輸出結果:

0    6.0
1    7.0
2    8.0
3    9.0
dtype: float64

2.3 std()求標準差

  返回數值列的標準差。

  標準差是方差的算術平方根,它能反映一個資料集的離散程度。注意,平均數相同的兩組資料,標準差未必相同。

  示例5

df.std()

  輸出結果:

Age      1.290994
Score    1.290994
dtype: float64

  示例6

df.std(axis = 1)

  輸出結果:

0    7.071068
1    7.071068
2    7.071068
3    7.071068
dtype: float64

2.4 資料彙總描述

  describe()  函式顯示與 DataFrame 資料列相關的統計資訊摘要。

  示例7

df.describe()

  輸出結果:

	Age	        Score
count	4.000000	4.000000
mean	12.500000	2.500000
std	1.290994	1.290994
min	11.000000	1.000000
25%	11.750000	1.750000
50%	12.500000	2.500000
75%	13.250000	3.250000
max	14.000000	4.000000

  describe() 函式輸出了平均值、std 和 IQR 值(四分位距)等一系列統計資訊。通過 describe() 提供的include能夠篩選字元列或者數字列的摘要資訊。

  include 相關引數值說明如下:

    • object: 表示對字元列進行統計資訊描述;
    • number:表示對數字列進行統計資訊描述;
    • all:彙總所有列的統計資訊。

  示例8:

df.describe(include=['number'])

  輸出結果:

	Age	        Score
count	4.000000	4.000000
mean	12.500000	2.500000
std	1.290994	1.290994
min	11.000000	1.000000
25%	11.750000	1.750000
50%	12.500000	2.500000
75%	13.250000	3.250000
max	14.000000	4.000000

  示例9:

df.describe(include='object')

  輸出結果:

	Name
count	4
unique	4
top	Blair
freq	1

  示例10:

df.describe(include='all')

  輸出結果:

	Name	Age	Score
count	4	4.000000	4.000000
unique	4	NaN	NaN
top	Blair	NaN	NaN
freq	1	NaN	NaN
mean	NaN	12.500000	2.500000
std	NaN	1.290994	1.290994
min	NaN	11.000000	1.000000
25%	NaN	11.750000	1.750000
50%	NaN	12.500000	2.500000
75%	NaN	13.250000	3.250000
max	NaN	14.000000	4.000000