Python pandas之多级索引取值详解

作者:宿者朽命 时间:2022-05-09 14:12:31 

最近发现周围的很多小伙伴们都不太乐意使用pandas,转而投向其他的数据操作库,身为一个数据工作者,基本上是张口pandas,闭口pandas了,故而写下此系列以让更多的小伙伴们爱上pandas。

平台:

windows 10

python 3.8

pandas 1.2.4

数据需求

给定一份多级索引数据,查找指定值。

Python pandas之多级索引取值详解

需求拆解

数据提取在pandas中,或者说在python中就是索引式提取,在单层索引中采用.loc.iloc方法已经非常常见了,然而在索引层次多了之后却有点不知所措,也只需要将各个索引看成整体进行提取就行。

需求处理

方法一

这里先给出一个比较笨拙的方法,先将索引进行重置为列数据,通过列取得bool条件再进行提取

datac.reset_index(inplace=True)
datac[(datac['School'] == 'S_2') & (datac['Class'] == 'C_3')]

Python pandas之多级索引取值详解

可以看到通过该类方法可以成功取到对应值

当然也可以采用.query方法进行条件筛选

datac.reset_index(inplace=True)
datac.query("School == 'S_1' and Class == 'C_3'")

Python pandas之多级索引取值详解

方法二

既然为多级索引,pandas也会有对应的取值方式,既可以用链式调用的方式,也可以通过元组进行提取,首先看看多级索引的输出值:

Python pandas之多级索引取值详解

是一个MultiIndex类型数据,其元素都是元组,即也能通过元组的方式进行索引调取

这两种都一个共同的特点,从左到右,要先外层再内层,否则会报KeyError错误

# 链式调用
datac.loc['S_1'].loc['C_1']

Python pandas之多级索引取值详解

# 元组作为索引调用
datac.loc[('S_3', 'C_1'), :]

Python pandas之多级索引取值详解

tips:

1.多层索引,即列名上方有层次结构也可以按这种方式进行提取。

2.想越过外层索引提取内层索引需要交换索引顺序才能顺利提取。

# swaplevel 交换索引层级
datac.swaplevel(axis=0).loc[('C_1')]  # axis=0: index

Python pandas之多级索引取值详解

来源: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
  • asp之家 网络编程 m.aspxhome.com