有时你需要重新调整某个轴上面的级别顺序,swaplever接受两个级别编号或者名称,并返回一个互换了级别的新对象。
frame = DataFrame(np.arange(12).reshape((4,3)),
index = [['a','a','b','b'],[1,1,3,4]],
columns=[['OH','OH','DH'],
['RE','RE','FE']])
frame.index.names = ['key1','key2']
frame.columns.names = ['state','color']
print(frame.swaplevel('key1','key2'))
而sortlever(或者sort_index(1)则根据单个级别中的值对数据进行排序,交换级别时,常常用到sortlever,这样最终结果就是有序的了。
许多对DataFrame和Series的描述和汇总都有一个level选项,用于指定在某条轴上面求和的级别,我们可以根据行或列进行求和。
print (frame.sum(level='key2'))
print (frame.sum(level='color',axis=1))