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=["數學"]) #對按數學成績進行排序