Python 使用多索引对数据帧进行排序

Python 使用多索引对数据帧进行排序,python,pandas,Python,Pandas,一个简单的例子,假设我有这个数据帧: raw = pd.DataFrame(np.array([ [1, 2, 5, 'User 1', 5], [1, 2, 3, 'User 2', 3], [1, 2, 2, 'User 3', 5], [3, 2, 4, 'User 4', 7], [3, 2, 3, 'User 5', 2], [3, 1, 6, 'User 6', 5], [2, 2, 6, 'User 7', 1], [

一个简单的例子,假设我有这个数据帧:

raw = pd.DataFrame(np.array([
    [1, 2, 5, 'User 1', 5],
    [1, 2, 3, 'User 2', 3],
    [1, 2, 2, 'User 3', 5],
    [3, 2, 4, 'User 4', 7],
    [3, 2, 3, 'User 5', 2],
    [3, 1, 6, 'User 6', 5],
    [2, 2, 6, 'User 7', 1],
    [2, 2, 5, 'User 8', 4],
    [2, 2, 3, 'User 9', 8],
]), columns=['a', 'b', 'c', 'd', 'e'])
在代码下面:

raw.set_index(['a', 'b', 'c'], inplace=True)
raw.sort_index()
raw.head(9)
输出如下所示:

而不是先按
a
排序,然后按
b
排序,然后按
c
排序。(整排)
如何解决此问题?

添加
inplace=True
参数:

或将输出分配回:

raw = raw.sort_index()

print (raw)
            d  e
a b c           
1 2 2  User 3  5
    3  User 2  3
    5  User 1  5
2 2 3  User 9  8
    5  User 8  4
    6  User 7  1
3 1 6  User 6  5
  2 3  User 5  2
    4  User 4  7
raw = raw.sort_index()

print (raw)
            d  e
a b c           
1 2 2  User 3  5
    3  User 2  3
    5  User 1  5
2 2 3  User 9  8
    5  User 8  4
    6  User 7  1
3 1 6  User 6  5
  2 3  User 5  2
    4  User 4  7