Python pandas之多级索引取值详解
作者:宿者朽命 时间:2022-05-09 14:12:31
最近发现周围的很多小伙伴们都不太乐意使用pandas,转而投向其他的数据操作库,身为一个数据工作者,基本上是张口pandas,闭口pandas了,故而写下此系列以让更多的小伙伴们爱上pandas。
平台:
windows 10
python 3.8
pandas 1.2.4
数据需求
给定一份多级索引数据,查找指定值。
需求拆解
数据提取在pandas中,或者说在python中就是索引式提取,在单层索引中采用.loc
或.iloc
方法已经非常常见了,然而在索引层次多了之后却有点不知所措,也只需要将各个索引看成整体进行提取就行。
需求处理
方法一
这里先给出一个比较笨拙的方法,先将索引进行重置为列数据,通过列取得bool条件再进行提取
datac.reset_index(inplace=True)
datac[(datac['School'] == 'S_2') & (datac['Class'] == 'C_3')]
可以看到通过该类方法可以成功取到对应值
当然也可以采用.query
方法进行条件筛选
datac.reset_index(inplace=True)
datac.query("School == 'S_1' and Class == 'C_3'")
方法二
既然为多级索引,pandas也会有对应的取值方式,既可以用链式调用的方式,也可以通过元组进行提取,首先看看多级索引的输出值:
是一个MultiIndex类型数据,其元素都是元组,即也能通过元组的方式进行索引调取
这两种都一个共同的特点,从左到右,要先外层再内层,否则会报KeyError
错误
# 链式调用
datac.loc['S_1'].loc['C_1']
# 元组作为索引调用
datac.loc[('S_3', 'C_1'), :]
tips:
1.多层索引,即列名上方有层次结构也可以按这种方式进行提取。
2.想越过外层索引提取内层索引需要交换索引顺序才能顺利提取。
# swaplevel 交换索引层级
datac.swaplevel(axis=0).loc[('C_1')] # axis=0: index
来源:https://blog.csdn.net/weixin_46281427/article/details/122485166
标签:Python,pandas,多级索引,取值
0
投稿
猜你喜欢
Python3 执行系统命令并获取实时回显功能
2023-12-06 13:23:10
Python实现的查询mysql数据库并通过邮件发送信息功能
2024-01-21 11:51:36
基于mysql全文索引的深入理解
2024-01-15 15:28:41
Python爬虫实现百度图片自动下载
2021-07-12 22:42:56
php中实现记住密码自动登录的代码
2023-11-14 18:36:14
服务器端jupyter notebook映射到本地浏览器的操作
2023-10-30 12:06:20
用Python生成N层的杨辉三角的实现方法
2022-12-20 16:27:09
利用Python实现K-Means聚类的方法实例(案例:用户分类)
2023-05-15 13:14:34
js删除所有的cookie的代码
2024-05-02 17:29:59
MYSQL的binary解决mysql数据大小写敏感问题的方法
2024-01-25 16:38:26
linux ubuntu中安装、卸载和删除python-igraph的方法教程
2021-01-10 19:54:02
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
2024-05-13 09:24:51
python selenium操作cookie的实现
2021-12-18 22:54:02
Python类绑定方法及非绑定方法实例解析
2022-08-10 11:36:38
如何利用Pyecharts可视化微信好友
2022-04-13 07:34:14
INSERT INTO .. ON DUPLICATE KEY更新多行记录
2024-01-21 23:27:49
使用SAE部署Python运行环境的教程
2021-02-21 14:26:54
Python光学仿真教程实现光线追踪
2023-08-12 00:27:39
Python格式化输出--%s,%d,%f的代码解析
2022-10-31 06:26:44
Python生成随机数详解流程
2023-03-31 15:21:33