前面介绍了多层索引MulitiIndex的创建。接下来我们就来介绍在dataframe中如何使用多层索引。
df如下所示
如何索引第0行,第0列的1.39这个数据呢?
第一种方式是利用iloc。因为iloc是根据行、列的号来索引的,因此直接索引即可iloc[0, 0]
第二种方式是采用iloc。采用iloc就需要稍微注意了,因为df是多层索引的dataframe,在通过loc索引时与单层索引稍微有些不同:loc[‘a’, ‘d’]后取的是一整行:
然后再通过loc[‘a’, ‘d’][‘cl0’, ‘r0’]即可选择特定的值,如下所示
上面的方式可能不好理解,那么有没有跟单层索引相类似的loc索引方式呢?答案是有的,通过圆括号()将多层索引变成元组的形式即可:
上图的形式,就同单层索引时loc的使用方法相同了。
掌握了如何在多层索引里选择dataframe内的值。我们学习下如何索引多层索引。
这句话可能比较绕口。以上面df.index来说,它的行索引如下
我们可以将这个MultiIndex变成dataframe对其进行处理。采用的函数如下
pandas.MultiIndex.to_frame(self, index=True, name=None).
其中index=True时默认保留原索引,为False时不保留,如下所示。
还可以选择特定的index,得到的会是一个元组,如下所示
我们还能通过pandas.MultiIndex.get_level_values(self, level)来获取MultiIndex特定的索引列。如下所示
通过以上的学习,你学会如何对多层索引进行索引与切片了吗?