pandas层次化索引

Series

多层次索引Series的索引是MultiIndex结构

根据最外层索引取数时,可直接通过series[outer_index_m]完成

根据内层索引取数时,需要series[:, inner_index_m]完成

更内层索引,series[:, :, ..., inner_index_m]完成

sreies.unstack()可将双层索引的series转为dataframe,外层索引做行索引,内层索引做列索引


DataFrame

多层次索引的dataframe按最外层行/列索引取数时,返回的结果是一个新的dataframe,所以,可用dataframe的按行/列取数方法依次进行

可以直接指定索引的别名(这是轴的标签,并不是索引本身的名称)

也可以通过MlutiIndex对象复用

dataframe.stack()方法

            可将多层列索引的dataframe转成新的dataframe,将最内层索引转为最内层索引

            若是dataframe只有一层列索引,stack方法会返回一个多层行索引的series

dataframe.unstack()方法

            可将多层行索引的dataframe转成新的dataframe,将最内层索引转为最层列索引

            若是dataframe只有一层行索引,stack方法会返回一个多层行索引的series

stack方法与unstack方法一直调用都会将dataframe转为series,两种series的区别在于行索引的先后顺序

*注:stack/unstack方法可以将dataframe转为series,也可以将series转为dataframe

       在多层次索引pandas对象中,这两个方法可一直调用下去,实现索引重排

图片展示的是unstack调用结果,stack同

索引分级顺序重排

上面通过stack/unstack实现了索引重排,一直调用太麻烦,还可以通过swaplevel方法直接指定两个层次的索引对调其位置

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。