
实际上,当数据高于二维时,我们一般用包含多层级索引的Dataframe进行表示,而不是使用Panel。原因是使用多层级索引展示数据更加直观, *** 作数据更加灵活,并且可以表示3维,4维乃至任意维度的数据。具体要怎么做呢?下面就从多层级索引的创建、取值与排序等内容教大家一些方法!
直接使⽤index参数创建 在使⽤index参数时,index的值是⼀个列表,其中的元素是多个列表,每个列表就是⼀层索 引,举个栗⼦:
我们来看⼀下输出结果:第⼀列的a、b、c是第⼀层的索引,第⼆层的期中、期末是 第⼆层的索引,第三列的就是对应的数据。
上面建索引的⽅式写起来很麻烦,我们要写很多重复的内容,所以pandas给我们提供了另⼀ 种⽅式(MultiIndex.from_product() )来构建多层索引
使⽤MultiIndex.from_product()方法构建,⾸先我们把每层需要的索引写⼊到⼀个列表中,将这些列表在存⼊到⼀个新的列表当中,作为 参数传⼊MultiIndex.from_product()方法中,把结果赋值给变量index,那么这个index就 是我们构造好的索引,我们只需要在创建Series的时候传入索引即可
结果:69
多层索引的应用场景一般是在数据量比较大,字段比较多,逻辑相对复杂的情况下,用来汇总数据,查找数据时使用。
希望本文的内容对大家的学习或者工作能带来一定的帮助,每天进步一点点,加油~
多层次索引Series的索引是MultiIndex结构
根据最外层索引取数时,可直接通过series[outer_index_m]完成
根据内层索引取数时,需要series[:, inner_index_m]完成
更内层索引,series[:, :, ..., inner_index_m]完成
sreies.unstack()可将双层索引的series转为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对象中,这两个方法可一直调用下去,实现索引重排
上面通过stack/unstack实现了索引重排,一直调用太麻烦,还可以通过swaplevel方法直接指定两个层次的索引对调其位置
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)