pandas 學習筆記二

筆記來源:利用python進行數據分析【Wes Mckinnney著,唐學韜等譯】

一、彙總和計算描述統計

pandas對象擁有一組常用的數學和統計方法,大部分屬於約簡和彙總統計,用於從Series中提取單個值(如sum、mean)或從DataFrame的行或列中提取一個Series.

1、相關示例

(1) 常用約簡方法(sum()、mean()等)

約簡方法的常見選項:

選項 說明
axis 約簡的軸
skipna 默認爲True.即默認排除缺失值
level 若軸是層次化索引(即MultiIndex),則根據level分組約簡

 

間接統計(idxmax())

(2) 累計型【如cumsum()】

(3) 彙總統計【如describe()】

(4)常見的彙總描述統計

方法 說明
count 計算樣本值中非NA值的數量
describe 針對Series或各DataFrame列計算彙總統計
min、max 計算樣本值的最小值、最大值
argmin、argmax 計算能夠獲取到最小值、最大值的索引位置(整數)
idxmin、idxmax 計算能夠獲取到最小值、最大值的索引值
quantile 計算樣本值的分位數(0到1)
sum 計算樣本值的總和
mean 計算樣本值的平均數
median 計算樣本值的中位數(50%分位數)
mad 根據平均值計算平均絕對離差
var 計算樣本值的方差
std 計算樣本值的標準差
skew 計算樣本值的偏度(三階矩)
kurt 計算樣本值的峯度(四階距)
cumsum 計算樣本值的累計和
cummin、cummax 計算樣本值的累計最大值、累計最小值
cumprod 計算樣本值的累計積
diff 計算樣本值的一階差分(對時間序列很有用)
pct_change 計算百分數變化

 

2、相關係數和協方差

 

3、唯一值、值計算以及成員資格

(1)唯一值(.unique())

返回的數組時未排序的,如果想返回的數組排序,可增添unique.sort()返回

(2)值計算(.value_counts() 統計所有值出現的次數)

value_counts()也適用於pandas.即pandas.value_count()

(3) 成員資格(isin() 判斷矢量化集合的成員資格)

(4)彙總三種方法

方法 說明
isin 計算一個表示"Series各值是否包含與傳入的值序列中"的布爾型數組

unique

計算series中的唯一值數組,按發現順序返回
value_counts 返回一個Series,其索引爲唯一值,其值爲頻次,按頻次值降序排列

二、處理缺失數據

1、缺失值的認識

pandas使用浮點值NaN(Not a Number)表示浮點和非浮點數組中的缺失數據

2、缺失值的處理方法

(1)濾除缺失數據(  .dropna()  )

dropna返回的是一個僅非空數據和索引值的Series

1)Series的缺失值濾除

2) DataFrame對象對缺失值的濾除

dropna默認丟棄任何含有缺失值的行

當dropna()傳入參數how = ‘all’即值有在一行中全部爲缺失值時才被丟棄

指定axis=1,按列丟棄

(2) 填充缺失數據(  .fillna()  )

1)fllna() 傳入一個常數,即填充爲這個常數

2)fillna() 傳入一個字典【對指定列進行填充不同的值】

3)fillna()傳入inplace關鍵字(默認inplae=False。即不改變原來的數據,當爲True時,則改變原來的數據)

4)fillna() 傳入關鍵字method='ffill' 和limit 時

5)fillna傳入其它統計描述方法

6)fillna函數參數

參數 說明
value 用於填充缺失值的標量值或字典對象
method 插值方式,如果函數調用時未指定其他參數的話,默認‘ffill’.【即前向填充缺失值(根據前一個值進行缺失值填充)】
axis 待填充的軸,默認axis=0
inplace 修改調用者對象而不產生副本
limit (對於前向和後向填充)可以連續填充的最大數量

三、層次化索引

層次化索引也是pandas的一項重要的功能,可使得一個軸上擁有一個或多個索引級別。

1、相關認識

(1)Series相關示例

1)創建

2)取值

3)層次化索引重塑(stack()、unstack() )

(2)DataFrame相關示例【每條軸都可有分層索引】

1)創建

2)對行列標籤加名稱及根據索引名取值

2、重排分級順序(swaplevel()、sortlevel() )

(1)swaplevel()  【只接收兩個級別的編號或名稱,返回一個互換了級別的新對象,數據不發生改變】

(2)sort_index(根據單個級別中的值對數據進行排序(穩定))

提示:Python2中使用sortlevel、而python3已逐漸不再使用,已經用sort_index進行替代

3、根據級別進行彙總統計

許多對DataFrame和Series的描述和彙總都有一個level選項,用於指定在某條軸上求和的級別。

(1)根據指定行索引名進行彙總計算

這裏括號內沒有傳入axis值默認是axis=0,即按行計算【注:axis值應與傳入的參數軸方向一致,這裏傳入的key2也是行方向】

(2)根據指定列索引名進行彙總計算

4、使用DataFrame的列

(1)set_index()  【將一個或多個列轉換爲行索引,並創建一個新的DataFrame】

(2)reset_index() 【與上述set_index相反,一個或多個行索引轉爲列索引

 

 

參考:

[1]. McKinney,W.著;唐學韜等譯. 利用python進行數據分析[M]. 北京:機械工業出版社,2013.9.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章