![20d57dfdd2682ae01765741757dc6ecb.png](https://i-blog.csdnimg.cn/blog_migrate/5e0faf7d29b1f61cd24e94a3d4ffd5a3.jpeg)
如果我们可以用含多级 索引的一维 Series 数据表示二维数据,那么我们就可以用 Series 或 DataFrame 表示三维 甚至更高维度的数据。多级索引每增加一级,就表示数据增加一维,利用这一特点就可以 轻松表示任意维度的数据了
一、创建一个多层索引的series
普通方法通过元组构成Series的多级索引
index= [('深圳', 2000), ('深圳', 2010), ('上海', 2000), ('上海', 2010), ('广东', 2000), ('广东', 2010)]populations= [33871648, 37253956, 18976457, 19378102, 20851820, 25145561]pop= pd.Series(populations, index=index)pop
代码结果:
(深圳, 2000) 33871648(深圳, 2010) 37253956(上海, 2000) 18976457(上海, 2010) 19378102(广东, 2000) 20851820(广东, 2010) 25145561dtype: int64
通过MultiIndex方法通过元组构成的多级索引
index= pd.MultiIndex.from_tuples(index)index
代码结果:
MultiIndex(levels=[['上海', '广东', '深圳'], [2000, 2010]], labels=[[2, 2, 0, 0, 1, 1], [0, 1, 0, 1, 0, 1]])
unstack() 方法可以快速将一个多级索引的 Series 转化为普通索引的 DataFrame
pop_df= pop.unstack()pop_df
![a6bedecb93ec75ad04b2bc08b4c0537f.png](https://i-blog.csdnimg.cn/blog_migrate/2cbe52a08ad5bff253f7f4a362c13456.jpeg)
stack() 方法实现相反的效果