看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
分层/多级索引非常令人兴奋,因为它为一些非常复杂的数据分析和操作(特别是处理高维数据)打开了大门。 从本质上讲,它使您可以在Series(1d)和DataFrame(2d)等较低维度的数据结构中存储和处理任意数量的维度的数据。
学习提示
多层索引在学习初期建议暂不学习,待后边遇到相关结构的数据处理后再来学习。
多层索引是指在行或者列轴上有两个及以上级别的索引,一般表示一个数据的几个分项。比如,下图所示的数据样式:
如果进行抽象的话,是这样的:
针对上例的数据,我们理解一下数据的结构。列索引第一层有 a - c 三个,具体到 a 它又有 one 和 two 两个维度,在行上,总体有 A 和 B 两列数据,其中他们又分为 x 和 y 两个维度。本质上,这其实是一个多维的数据,但是以二维的形式展现出来了,这样我们就可以以这种形式处理高维数据。
多层索引数据在实际使用中还不少。比如:
df.groupby('team').agg(['max', 'min'])
'''
name Q1 Q2 Q3 Q4
max min max min max min max min max min
team
A Tyler Aaron 96 9 87 4 99 14 97 8
B Thomas Acob 97 2 99 4 99 12 99 2
C William Adam 98 1 96 13 87 1 98 20
D Theodore3 Aiden 80 5 97 7 95 10 99 11
E Zachary Arlo8 97 4 98 1 87 13 98 3
'''
以上为每个季度的最大值和最小值,在行上有两层索引,这样就清晰地表达了业务意义。
在处理复杂数据数据时常常会出现多层索引,相当于我们给 Excel 同类的表头做了合并单元格。
但是,我们尽量避免让数据多层级化,这样会让我们的数据处理起来特别复杂,可以先将数据筛选完成再创建索引,保持一层索引。
注:本文及后文多层索引中的可视化示例图来自 jessicastringham。
更新时间:2024-10-27 08:41:59 标签:pandas 索引