二维数据通常称一个维度为行,另一个为列。且行有行索引,列有列索引。如下图,行索引为:[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
本文分享自 程序员郭震zhenguo 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!