前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BAT面试题53:了解如何重置索引和多级索引吗?

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

作者头像
double
发布2019-05-07 17:23:10
7070
发布2019-05-07 17:23:10
举报
文章被收录于专栏:算法channel算法channel

二维数据通常称一个维度为行,另一个为列。且行有行索引,列有列索引。如下图,行索引为:[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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档