python——pandas庫


 

 http://pandas.pydata.org/pandas-docs/stable/api.html 

目錄

一、pandas簡介
二、Pandas庫的Series類型
三、pandas庫的DataFrame類型
四、pandas庫的數據類型操作
五、pandas庫的數據類型運算
六、pandas的數據特征分析

 

一、pandas簡介:

Pandas庫:python的第三方庫,提供高性能數據類型和分析工具。

           簡單說就是,便於操作的數據類型,很多的分析函數和分析工具; 

Pandas的引用: import pandas as pd;

Pandas 庫主要的兩個數據類型:Series,DataFrame;

                  Series:相當於一維的數據類型

                  DataFrame:相當於二維到多維的數據類型

    基於上述數據類型的各類操作

       基本操作,運算操作,特征類操作,關聯類操作

Numpy   pandas比較

      

提供基礎數據類型ndarray

拓展數據類型:Series 與 DataFrame

關注數據的結構表達

關注數據的應用表達

體現維度:數據間關系

應用表達體現在數據與索引間的關系

 

 

 

 

 

二、Pandas庫的Series類型:

Series類型由一組數據及與之相關的數據索引組成,每個數據對應一個索引,可以自定義索引,還有一個默認索引從0開始。         

       一、Series類型的創建:函數pd.Series(a,index)

    1、 python列表創建:

      S=pd.Series(  a  ,index=[ ] ) 

                     a為python列表,index不可省略,len(a)==len(index) ; 

              2、從標量值創建:

                     S=pd.Series(a , index)

                     a為標量,index不可省略;index表達Series類型的尺寸。

              3、python字典創建

                     S=pd.Series(a,index)

                     a為python字典;a中的key是索引;

      如果index不省略,則從dic中挑選出其key在index列表中的鍵值對組成一個Series,如果index中沒有元素與dic中的key對應,則該索引所對應的值為None

    4、從ndarray類型創建:導入numpy與pandas

                     S=pd.Series(a,index)

                     a是ndarray類型,index 也可是ndarray類型

    5、通過其他函數,如arange() 函數創建

 

  二、Series類型的基本操作

    1、Series類型包括index和values兩部分。

      S=nd.Series()

                S.index  獲得索引 返回一個索引類型

                S.values 獲得數據 返回一個numpy庫的array類型

                索引可以使用默認所以,或自定義索引,但兩者不可以混合使用。

    2、Seriesd類型的操作類似ndarray類型

      a)  采用 [ ] 進行索引

      b)  numpy中運算和操作可用於Series。

      c)  可以通過自定義索引的列表進行切片。

      d)  可以通過自動索引進行切片,如果存在自定義索引,則一同被切片。

    3、Series類型的操作類似Python字典類型

      a)  通過自定義索引訪問

      b)  保留字in操作  //key in dic 判斷key在不在dic的鍵中。返回True/False

      c)  使用.get( index, a )方法 //返回index對應的值,如果不存在則返回a

    4、Series類型對齊操作:Series+Series

      索引值相同的值進行運算,索引值不同的值不進行運算,即值等於NaN

    5、Series類型的name屬性:

      Series對象和索引都有一個name屬性,存儲在.name屬性;

           即Series.name   與    Series.index.name 可直接賦值修改。

    6、Series類型的修改

                Series對象可以隨時修改並即刻生效

      

  三、理解Series類型:

           Series是一維帶“標簽”數組。

           Series基本操作類似ndarray和字典,根據索引對齊。

 

三、pandas庫的DataFrame類型

  DataFrame類型由共用相同索引的一組列組成。(例一個學號可對應一個學生的姓名,專業,年齡等)

  DataFrame是一個表格型的數據類型,每列值類型可以相同也可不同

  DataFrame既有行索引也有列索引,既一個帶標簽的二(多)維數據類型。

  DataFrame常用於表達二維數據,但可以表達多維數據。

 

  1、DataFrame類型的創建:

    a) 從二維ndarray對象創建:

      d=pd.DataFrame( a )

       其中a為ndarray對象,自動生成

    b) 有一維ndarrray對象字典創建:

      d=pd.DataFrame(  )  

      c)    從列表類型的字典創建

四、pandas庫的數據類型操作

  1、改變Series和DataFrame對象(增加、重排索引或刪除部分值)

    a) 重新索引

      .reindex(index=None,columns=Nonem....)

參數 說明
index,columns 新的行列自定義索引
fill_value 重新索引中,用於填充缺失位置的值
method 填充方法,ffill當前值向前填充
limit 最大填充量
copy 默認True,生成新的對象,False,新舊相等不賦值

 

 

 

 

 

 

    

    b) 索引類型的常用方法

方法 說明
.append(idx) 連接另一個index對象,產生新的Index對象
.diff(idx) 計算差集,產生新的Index對象
.interesection(idx) 計算交集
.union(idx) 計算並集
.delete(loc) 刪除loc位置處的元素
.insert( loc,e ) 在loc位置增加一個元素

    

 

 

 

 

 

    

    c) 刪除指定索引對象

      .drop()能夠刪除Series和DataFrame指定行或列索引

五、pandas庫的數據類型運算

  1、算術運算法則

    算術運算根據行列索引,補齊后運算(相同索引才進行運算),運算默認產生浮點數。

    補齊時缺項填充NaN(空值)

    二維和一維、一維和零維間為廣播運算。

    采用 + - * /  符號進行的二元運算會產生新的對象

  2、 四則法則運算方法形式(除了用+-*/,還可用其方法)

.add( d, **argws ) 類型間加法運算,可選參數
.sub( d, **argws) 類型間減法運算,可選參數
.mul( d, **argws) 類型間的乘法運算,可選參數
.div(d, **argws) 類型間除法運算,可選參數

 

 

 

 

 

 

  

六、pandas的數據特征分析

  1、數據的排序

    a) .sort_index()方法:在指定軸上根據索引進行排序,默認升序。

      .sort_index(axis=0, ascending=True )

    b) .sort_values()方法:在指定軸上根據數值進行排序,默認升序。

      Series.sort_values(axis=0, ascending=True)

      Series.sort_values( by ,axis=0, ascending=True )  by:axis軸上的某個索引或索引列表。

     注意:NaN值統一放在最后面

  2、數據的基本統計分析

    a) 基本的統計分析函數(適用於Series和DataFrame類型)

方法 說明
.sum() 計算數據的總和,按0軸
.count() 非NaN值的數量
.mean()   .median() 計算數據的算術平均值、算術中位數
.var()      .std() 計算數據的方差、標准差
.min()     .max() 計算數據的最小值、最大值
.argmin()   .argmax() 計算數據最大值、最小值所在位置的索引位置(自動索引)
.idxmin()  .idxmax()  計算數據最大值、最小值所在位置的索引(自定義索引)
.describe() 針對(0軸)各列的統計匯總,返回一個Series類型,其中有sum,median 等

 

 

 

 

 

 

 

 

  

 

  3、數據的累計統計分析

    數據的累計統計分析:對前 1 - n 個數進行累計運算

    a) 累計統計分析函數:適用於Series和DataFrame類型

方法 說明
 .cumsum() 依次給出前1、2、...、n個數的和
 .cumprod() 依次給出前1、2、...、n個數的積
 .cummax() 依次給出前1、2、...、n個數的最大值
 .cummin() 依次給出前1、2、...、n個數的最小值

 

 

 

 

 

 

    

    b) 適用於Series和DataFrame類型,滾動計算窗口(窗口計算)

方法

說明

 .rolling(w).sum()

依次計算相鄰w個元素的和                                  

 .rolling(w).mean()

依次計算相鄰w個元素的算術平均值

 .rolling(w).var()

依次計算相鄰w個元素的方差
 .rolling(w).std()

依次計算相鄰w個元素的標准差

 .rolling(w).min()   /.rolling(w).max()

依次計算相鄰w個元素的最大值和最小值

 

 

 

 

 

 

 

 

 

 

  4、數據的相關分析

    兩個變量相關性度量:協方差(相對不精確),Pearson相關系數:

  相關分析函數:

方法 說明
 .cov() 計算協方差矩陣
.corr() 計算相關系數矩陣,Pearson、Spearman、Kendall等系數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM