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=["数学"])  #对按数学成绩进行排序

posted @ 2019-01-12 09:31  石桥浪子  阅读(3000)  评论(0编辑  收藏  举报