Сортировка нескольких индексов в Pandas
У меня есть набор данных с многоиндексными столбцами в pandas df, который я хотел бы сортировать по значениям в определенном столбце. Я пробовал использовать sortindex и sortlevel, но не смог получить результаты, которые я ищу. Мой набор данных выглядит так:
Group1 Group2
A B C A B C
1 1 0 3 2 5 7
2 5 6 9 1 0 0
3 7 0 2 0 3 5
Я хочу отсортировать все данные и индекс по столбцу C в группе 1 в порядке убывания, чтобы мои результаты выглядели следующим образом:
Group1 Group2
A B C A B C
2 5 6 9 1 0 0
1 1 0 3 2 5 7
3 7 0 2 0 3 5
Можно ли сделать этот вид со структурой, в которой находятся мои данные, или мне нужно обменивать Group1 на сторону индекса?
Ответы
Ответ 1
При сортировке по MultiIndex вам нужно содержать кортеж, описывающий столбец внутри списка *:
In [11]: df.sort([('Group1', 'C')], ascending=False)
Out[11]:
Group1 Group2
A B C A B C
2 5 6 9 1 0 0
1 1 0 3 2 5 7
3 7 0 2 0 3 5
*, чтобы не путать pandas с тем, что вы хотите сортировать сначала по Group1, а затем по C.