使用 python 根据索引和非索引列对表值进行排序

use*_*976 3 python pandas

如何根据索引和非索引列对数据框中的值进行排序?

数据框:

ID  Colour  A   B   C
45356   Green   1   34  4
34455   Yellow  23  0   1
53443   Brown   3   4   3
45555   Green   5   5   2
Run Code Online (Sandbox Code Playgroud)

表有两个索引列(ID 和颜色)。我想根据 ID(升序)、A(降序)和 C(升序)对表进行排序。

所需的输出是:

ID  Colour  A   B   C
34455   Yellow  23  0   1
45356   Green   1   34  4
45555   Green   5   5   2
53443   Brown   3   4   3
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这个:

df.set_index(inplace=True)
df.sort_values(['ID', 'A', 'C'], ascending=['True','False','True'])
Run Code Online (Sandbox Code Playgroud)

这不起作用作为“ID”,因为无法识别列。

piR*_*red 5

你要

df.reset_index().sort_values(
    ['ID', 'A', 'C'],
    ascending=['True','False','True']
).set_index(['ID', 'Colour'])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述