美文网首页
3.7层级索引

3.7层级索引

作者: 麦冬花儿 | 来源:发表于2022-02-17 19:47 被阅读0次

下面创建一个Series, 在输入索引Index时,输入了由两个子list组成的list,第一个子list是外层索引,第二个list是内层索引。

示例代码:

import pandas as pd
import numpy as np

ser_obj = pd.Series(np.random.randn(12),index=[
                ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c', 'd', 'd', 'd'],
                [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2]
            ])
print(ser_obj)

运行结果:

a 0 0.099174
1 -0.310414
2 -0.558047
b 0 1.742445
1 1.152924
2 -0.725332
c 0 -0.150638
1 0.251660
2 0.063387
d 0 1.080605
1 0.567547
2 -0.154148
dtype: float64

MultiIndex索引对象

打印这个Series的索引类型,显示是MultiIndex

直接将索引打印出来,可以看到有lavels,和labels两个信息。levels表示两个层级中分别有那些标签,labels是每个位置分别是什么标签。

示例代码:

print(type(ser_obj.index))
print(ser_obj.index)

运行结果:

<class 'pandas.indexes.multi.MultiIndex'>
MultiIndex(levels=[['a', 'b', 'c', 'd'], [0, 1, 2]],
labels=[[0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3], [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2]])

选取子集
根据索引获取数据。因为现在有两层索引,当通过外层索引获取数据的时候,可以直接利用外层索引的标签来获取。
当要通过内层索引获取数据的时候,在list中传入两个元素,前者是表示要选取的外层索引,后者表示要选取的内层索引。

  1. 外层选取:
ser_obj['outer_label']

示例代码:

# 外层选取
print(ser_obj['c'])

运行结果:

0 -1.362096
1 1.558091
2 -0.452313
dtype: float64

  1. 内层选取:
ser_obj[:, 'inner_label']

示例代码:

# 内层选取
print(ser_obj[:, 2])

运行结果:

a 0.826662
b 0.015426
c -0.452313
d -0.051063
dtype: float64

print(ser_obj[a,2])#表示选择a层中为2的值

常用于分组操作、透视表的生成等

交换分层顺序

swaplevel()
.swaplevel( )交换内层与外层索引。

示例代码:

print(ser_obj.swaplevel())

运行结果:

0 a 0.099174
1 a -0.310414
2 a -0.558047
0 b 1.742445
1 b 1.152924
2 b -0.725332
0 c -0.150638
1 c 0.251660
2 c 0.063387
0 d 1.080605
1 d 0.567547
2 d -0.154148
dtype: float64
交换并排序分层

sortlevel()
.sortlevel( )先对外层索引进行排序,再对内层索引进行排序,默认是升序。

示例代码:

# 交换并排序分层
print(ser_obj.swaplevel().sortlevel())

运行结果:

图片.png

相关文章

  • 3.7层级索引

    下面创建一个Series, 在输入索引Index时,输入了由两个子list组成的list,第一个子list是外层索...

  • Pandas层级索引

    Pandas层级索引 MultiIndex索引对象 选取子集 外层选取 内层选取 交换分层顺序 交换并排序分层

  • Pandas的分层索引MultiIndex使用

    为什么要学习分层索引MultiIndex? 分层索引:在一个轴向上拥有多个索引层级,可以表达更高维度数据的形式; ...

  • python数据规整:连接、联合与重塑

    分层索引 在轴向上拥有一个或多个索引层级,创建一个分层索引数据: 这个结果有点意外吧,注意这里是标签索引loc[]...

  • jmespath 基本用法

    一. 基本语法 1.字典层级:(通过键取相应值) 2.列表索引(通过索引取相应值,索引从0开始,负数表示倒序,-...

  • B+树和B树(database system concepts读

    B+树是数据库中常用的一种多层级索引(在密集索引上层增加了松散索引)数据结构,B代表了balanced,即对于索引...

  • 数据库索引设计与优化【笔记】

    一、概述 1.索引误区: 索引层级不要超过5层 单表的索引数不要超过6个 不应该索引不稳定的列 2.在当前磁盘条件...

  • 索引设计与优化

    关于索引设计的一些误区: 误区一:索引设计层级不要超过五层 这是因为以前的索引设计的建议是基于内存比较小,一般只有...

  • 递归

    对每一个children添加一个level,来表示它的层级 每一层级下都与最外层的索引一致

  • mpvue iview-webapp框架的一些坑

    iview 框架 index 组件在ios 中由于层级关系字母索引被挡住问题 框架代码修改 页面代码

网友评论

      本文标题:3.7层级索引

      本文链接:https://www.haomeiwen.com/subject/pnnzhrtx.html