BAT面试题53:了解如何重置索引和多级索引吗?

二维数据通常称一个维度为行,另一个为列。且行有行索引,列有列索引。如下图,行索引为:[falcon,barrot,lion,monkey],列索引为:[class,max_speed]

也就是说,真正的数据为剩余区域。

01

现在,我们想重置上面说到的行、列索引。Pandas中实现行索引重置功能的API:reset_index: 函数原型如下:

参数如下:

level参数为:多级索引才会用到,一般常见的都为单级索引;drop控制行索引是否添加到数据中;inplace:是否改变发生在数据本身;col_level:多级列插入标签到哪一个;col_fill:其他级怎么被name。

上面的df,执行此API操作后,变为如下:默认行索引进入到数据列中

有时,想丢弃行索引,也就是delete掉falcon,parrot,lion,monkey,参数drop=True后,即可,那么行索引还有吗,有且变为默认行索引[0,1,2,3].

02

next, 认识下多级索引,直观看下:行索引变为:[class,name], 行索引取值为:[(bird,falcon),(bird,parrot),(mammal,lion),(mammal,monkey)],列索引为:[speed,max], [species,type]

pandas框架下怎么实现?

多级索引下执行reset_index,如我们想象,两级行索引都融入到数据域中:

如果,只想class索引融入进去,借助level参数:

可以看到新增的 class列自动被并入col_level=0,即与speed,species对齐。如果我想与max,type对齐,借助col_level参数:

col_level为0的列重命名,借助col_fill参数:

以上,Pandas框架下索引重置,多级索引用法。以上例子参考官网,详细url如下:

http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.reset_index.html#pandas.DataFrame.reset_index

原文发布于微信公众号 - Python与机器学习算法频道(alg-channel)

原文发表时间:2019-02-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券