pandas(二)

層級索引:dom

  index=[('a',2010),('b',2011),('c',2010'),('a',2012),('e',2010),('f',2011)]索引

  age=[18,17,18,16,18,17]數據

常規建立co

  pop =pd.Series(age,index=index)字典

MultiIndex建立生成

  index= pd.MultiIndex.from_tuples(index)data

  pop = pop.reindex(index)   最原先的索引重置爲multiindex參數

  pop[:,2010]  取出2010的全部數據index

  

高維數據的多級索引:

  pop_df = pop.unstack()   

  本質是生成一個a-f爲行索引,年份爲列索引的矩陣,缺失值用nan

  pop = pop_df.stack()   和unstack相反

 

多級索引建立:

  直接將index參數設爲二維

  df = pd.DataFrame(np.random.rand(4,2),

              index=[['a','a','c','d'],[1,2,1,1]],

              columns=['data1','data2'])

 

  將元祖做爲鍵的字典傳入

  data = {('a',1):18,('a',2):19,('b',1):20}

  pd.Series(data)  

  

  顯式建立多級索引

  pd.MultiIndex.from_arrays([['a','a','b','b'],[1,2,1,2]])

  pd.MultiIndex.from_tuples([('a',1),('a',2),('b',1),('b',2)])  

 

多級索引等級名稱

  pop.index.names=['name','year']  之前面例子來講給name是a一列的名稱,year是2010一列的造成

 

Series多級索引

 獲取單個元素:

  pop['a',2010]

  也能夠支持局部取值

  pop['a']

  局部切片

  pop['a':'c']  但要求muliIndex按順序排列

  pop[:,2012]

  pop[pop>18]

  pop[['a','b']]

相關文章
相關標籤/搜索