pandas中層次化索引與切片


Pandas層次化索引

 

1. 創建多層索引

隱式索引:

常見的方式是給dataframe構造函數的index參數傳遞兩個或是多個數組

 

Series也可以創建多層索引

Series多層索引

B =Series(np.random.randint(0,150,size=10),index=pd.MultiIndex.from_product([list("ABCDE"),["期中","期末"]]))

B

 

Dataframe多層索引的創建(推薦使用)

 

多層行索引

A = DataFrame(np.random.randint(0,150,size=(10,3)),columns=["數學","語文","英語"],

             index=pd.MultiIndex.from_product([list("ABCDE"),["期中","期末"]]))

A

 

 

 

對象方式多行列索引

B= DataFrame(np.random.randint(0,150,size=(3,20)),index=["數學","語文","英語"],columns=pd.MultiIndex.from_product([list("ABCDE"),["期中","期末"],["上","下"]]))

B

 

 

元祖方式創建多層索引

A = DataFrame(np.random.randint(0,150,size=(4,3)),columns=["數學","語文","英語"],

             index=pd.MultiIndex.from_tuples([("A","期中"),("A","期末"),("B","期中"),("B","期末")]))

A

 

數組方式創建多層索引

 

多層索引的對象的索引和切片

 

Datafrane多層索引

行索引:

A.loc["A","期中"]

B.loc["A","期中","上"]

列索引:

B["A","期中","上"]

 

Series多層索引

  

行切片以下兩種都適用

D["A","期中"]

D.loc["A","期中"]

 

  

 

多層索引的切片

注:對於多層索引的切片必須排好順序,才能進行切片,使用sort_index()函數對索引進行排序(單層索引可以切片可以不考慮索引的順序)。

 

對行進行切片

A.loc["A":"C"]

 

 

A.iloc[1:3]

 

對列進行切片同行切片一樣,使用顯性索引和隱形索引對數據第二維進行切片

 

 

對數據進行排序是,使用sort_values()對數據進行排序

如:A.sort_values(by=["數學"])  #對按數學成績進行排序


免責聲明!

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



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