Python pandas之多级索引取值详解

 更新时间:2022年01月14日 09:05:09   作者:宿者朽命  
这篇文章主要为大家介绍了Python pandas之多级索引取值,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

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

平台:

windows 10

python 3.8

pandas 1.2.4

数据需求

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

pic1

需求拆解

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

需求处理

方法一

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

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

pic2

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

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

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

pic3

方法二

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

pic4

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

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

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

pic5

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

pic6

tips:

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

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

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

pic7

总结

功夫再高,也怕菜刀。本例使用方法比较常规,旨在巩固基础知识,当下次遇到能够想起可以直接索引取值而不用将索引重置为列值,以高效完成数据提取任务。

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

您可能感兴趣的文章:

相关文章

  • Python:__eq__和__str__函数的使用示例

    Python:__eq__和__str__函数的使用示例

    这篇文章主要介绍了Python:__eq__和__str__函数的使用示例,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-09-09
  • python任务调度实例分析

    python任务调度实例分析

    这篇文章主要介绍了python任务调度实现方法,实例分析了任务调度的原理与Python实现方法,需要的朋友可以参考下
    2015-05-05
  • 如何查看python关键字

    如何查看python关键字

    在本篇文章里小编给大家整理的是一篇关于python关键字的查看方法和实例内容,有兴趣的朋友们可以学习下。
    2021-01-01
  • Python单链表的简单实现方法

    Python单链表的简单实现方法

    这篇文章主要介绍了Python单链表的简单实现方法,包括定义所需的字段及具体实现代码的分析,需要的朋友可以参考下
    2014-09-09
  • PythonQT5打包exe线程使用

    PythonQT5打包exe线程使用

    本文介绍了使用Python和QT5打包EXE文件,并在其中使用线程,打包时需要修改spec文件以加载资源文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • python如何解决指定代码段超时程序卡死

    python如何解决指定代码段超时程序卡死

    这篇文章主要介绍了python如何解决指定代码段超时程序卡死,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 基于Google的Python编码规范标准

    基于Google的Python编码规范标准

    这篇文章主要介绍了基于Google的Python编码规范标准,其中包含了分号,行长度,括号,缩进,空行,空格等基本符号的使用规则,有需要的朋友可以参考下
    2021-08-08
  • python os.path.isfile 的使用误区详解

    python os.path.isfile 的使用误区详解

    今天小编就为大家分享一篇python os.path.isfile 的使用误区详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • python3图片转换二进制存入mysql

    python3图片转换二进制存入mysql

    MYSQL是支持把图片存入数据库的,也相应的有一个专门的字段BLOB (Binary Large Object),即较大的二进制对象字段,看下面代码
    2013-12-12
  • Pytorch怎样保存训练好的模型

    Pytorch怎样保存训练好的模型

    这篇文章主要介绍了Pytorch怎样保存训练好的模型问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02

最新评论