pandas基础:reset_index与MultiIndex
| 分类: python |
pandas有很强大的index功能,简单介绍一下reset_index这个函数,先看看定义
level默认原df的index移除,可以自定义,drop如果为true原index就会被移除,inplace是保存,col_level是对多层目录进行插入,简单说就是把指定的目录改为列,col_fill就是把空白的列重命名,看个例子,将要修改的df如下
df.reset_index(drop=True)的话原来的index将会被新的index取代,现在通过multipindex修改一下目录,index增加一个cat子目录,columns也增加多一层,如果需要对index的level1进行提取就写成:df.index.levels[1],
修改后如下
现在index和columns各有两层,然后通过reset_index修改一下,把cat改为columns然后定义在level1,由于level0空白重命名为'letter',修改后如下
现在原来的index第二层变为columns,目录相应增加了level0为letter,看看源码
由于groupby这个函数不能对index进行组合,所以可以通过reset_index()把index变成columns后在进行groupby的计算,例如df.reset_index().groupby(['state','status']).sum()
如果写成df=df.reset_index().groupby(['state','date']).sum()
可以通过df.loc['FL']['2009':'2010']按年份提取

加载中…