層級索引: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']]