博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pandas层级索引1
阅读量:5237 次
发布时间:2019-06-14

本文共 1976 字,大约阅读时间需要 6 分钟。

层级索引(hierarchical indexing)

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

示例代码:

import pandas as pdimport numpy as npser_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.558047b  0    1.742445   1    1.152924   2   -0.725332c  0   -0.150638   1    0.251660   2    0.063387d  0    1.080605   1    0.567547   2   -0.154148dtype: float64

 

MultiIndex索引对象

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

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

示例代码:

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

 

运行结果:

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.3620961    1.5580912   -0.452313dtype: float64

 

2. 内层选取:

ser_obj[:, 'inner_label']

示例代码:

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

 

运行结果:

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

 

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

交换分层顺序

1. swaplevel()

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

示例代码:

print(ser_obj.swaplevel())

 

运行结果:

0  a    0.0991741  a   -0.3104142  a   -0.5580470  b    1.7424451  b    1.1529242  b   -0.7253320  c   -0.1506381  c    0.2516602  c    0.0633870  d    1.0806051  d    0.5675472  d   -0.154148dtype: float64

 

交换并排序分层

sortlevel()

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

示例代码:

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

 

运行结果:

0  a    0.099174   b    1.742445   c   -0.150638   d    1.0806051  a   -0.310414   b    1.152924   c    0.251660   d    0.5675472  a   -0.558047   b   -0.725332   c    0.063387   d   -0.154148dtype: float64

 

转载于:https://www.cnblogs.com/alexzhang92/p/9793556.html

你可能感兴趣的文章
STEP2——《数据分析:企业的贤内助》重点摘要笔记(六)——数据描述
查看>>
变量的命名规范
查看>>
手机端自动跳转
查看>>
react中进入某个详情页URL路劲参数Id获取问题
查看>>
X509证书中RSA公钥的提取与载入
查看>>
关于爬虫风控的记录
查看>>
首届.NET Core开源峰会
查看>>
ViewPager的onPageChangeListener里面的一些方法参数:
查看>>
python pdf转word
查看>>
poj 2182 Lost Cows
查看>>
OpenFlow 交换机与控制器交互步骤
查看>>
java-内存模型
查看>>
文本相似度比较(网页版)
查看>>
Jenkins关闭、重启,Jenkins服务的启动、停止方法。
查看>>
2019.01.13 bzoj4538: [Hnoi2016]网络(树链剖分)
查看>>
codeforces 315 308
查看>>
国际知名品牌广告语欣赏(英汉)
查看>>
内置函数
查看>>
solr安全-tomcat
查看>>
BZOJ3998 [TJOI2015]弦论 【后缀自动机】
查看>>