学习《利用Python进行数据分析》一书的8.1 层次化索引内容时,涉及到使用sort_index()进行排序,原文内容和实例如下:
“sort_index则根据单个级别中的值对数据进⾏排序。交换级别 时,常常也会⽤到sort_index”

学习过程中没有理解level=1的作用,看方法中备注的解释内容也还是没能理解。注释内容是
level : int or level name or list of ints or list of level names If not None, sort on values in specified index level(s).
于是,更改level的值进一步了解。学习过程代码如下:
import pandas as pd import numpy as np frame = pd.DataFrame(np.arange(21).reshape((7,3)),index=[['b','b','c','c','a','a','a'],[1,2,3,1,2,1,2]], columns=[['Ohio','Ohio','Colorado'],['Green','Red','Green']]) print(frame)
输出结果为:

设置sort_index(level=0),查看代码输出效果:
frame1=frame.sort_index(level=0) print(frame1)
输出结果为:

设置sort_index(level=1),查看代码输出效果:
frame1=frame.sort_index(level=1) print(frame1)

设置sort_index(level=2),查看代码输出效果:
frame1=frame.sort_index(level=2) print(frame1)
结果报错了,错误原因如下:

接下来增加frame的层级
import pandas as pd
import numpy as np
frame = pd.DataFrame(np.arange(21).reshape((7,3)),
index=[['A','A','C','C','B','B','B'],['b','b','c','c','a','a','a'],[1,2,3,1,2,1,2]],
columns=[['Ohio','Ohio','Colorado'],['Green','Red','Green']])
print(frame)
输出结果为:

再次设置sort_index(level=2),查看代码输出效果:
frame1=frame.sort_index(level=2) print(frame1)

这次没有报错了,所有level的值是按照层次化标签的来进行排序的。
frame1=frame.sort_index(level=0) print(frame1)

输出结果显示按照第一层级ABC排序
frame1=frame.sort_index(level=1) print(frame1)

输出结果显示按照第二层级abc排序
frame1=frame.sort_index(level=2) print(frame1)

输出结果显示按照第二层级1,2,3排序
本文通过实例讲解了如何在`pandas`DataFrame中使用`sort_index()`函数,特别关注level参数对层次化索引排序的影响。

1304

被折叠的 条评论
为什么被折叠?



