python 中如何使用多层索引
1、导入工具包,并输入数据集。import pandas as pddf=pd.DataFrame({'name':['Lucy','Jack','Lily','Tom','Jim','Bob'],'age':[18,18,18,19,17,18],'grade':[1,2,3,4,5,6]})Print(df)
2、定义多重索引。将name作为第一层索引、grade作为第二层索引。可以看到运行结果中的index部分已经发生变化。df.index=[df['name'],df['grade']]print(df)Print(df.index)
3、自定义索引值。可以根据索引所在层级level或者索引名称来选择需要定义的索引。df1=蟠校盯昂df.copy()d熠硒勘唏f1.index=df1.index.set_levels([6,5,4,3,2,1],level=1)print(df1)df1.index=df1.index.set_levels(['Lu','Ja','Li','To','Ji','Bo'],level='name')print(df1)可以看到运行结果中索引值发生了变化。
4、获取索引值。利用MultiIndex.to_frame函数将索引值作为数据的列字段使用。df2=df.copy()df2=df2.drop(['grade','name'],axis=1) #删除列print(df2)df2['name']=pd.MultiIndex.to_frame(df2.index)['name']df2['grade']=pd.MultiIndex.to_frame(df2.index)['grade']print(df2)
5、删除多重索引中的其中一层。level=0表示删除第一层,level=’name’,表示删除名为name的这一层索引。df2.index=df2.index.droplevel(level=0)Print(df2)
6、交换索引的层级。df3=df.copy()df3.index=df3.index.swaplevel()df3可以看到原来在第二层的grade现在到第一层了。