У меня есть серия с 3-уровневым MultiIndex:
print(ser_test):
Value
Date Group Country
2014-01-31 3 AE example
AR example
2014-02-28 3 AE example
AR example
2014-03-31 3 AE example
AR example
2014-04-30 3 AE example
AR example
2014-05-30 3 AR example
2014-06-30 2 AE example
3 AR example
2014-07-31 2 AE example
3 AR example
2014-08-29 2 AE example
3 AR example
2014-09-30 2 AE example
3 AR example
2014-10-31 2 AE example
3 AR example
2014-11-28 2 AE example
3 AR example
2014-12-31 2 AE example
3 AR example
Моя цель - сначала отсортировать серии по Страна , а затем по Дата , игнорируя *Уровень 1008 * Группировка для достижения следующего результата:
Value
Date Group Country
2014-01-31 3 AE example
2014-02-28 3 AE example
2014-03-31 3 AE example
2014-04-30 3 AE example
2014-06-30 2 AE example
2014-07-31 2 AE example
2014-08-29 2 AE example
2014-09-30 2 AE example
2014-10-31 2 AE example
2014-11-28 2 AE example
2014-12-31 2 AE example
2014-01-31 3 AR example
2014-02-28 3 AR example
2014-03-31 3 AR example
2014-04-30 3 AR example
2014-05-30 3 AR example
2014-06-30 3 AR example
2014-07-31 3 AR example
2014-08-29 3 AR example
2014-09-30 3 AR example
2014-10-31 3 AR example
2014-11-28 3 AR example
2014-12-31 3 AR example
И мне нужно еще Группировать уровень, поэтому я не могу его просто устранить.
Поэтому я попытался использовать метод sort_index следующим образом:
print(ser_test.sort_index(level = ['Country', 'Date']))
или так:
print(ser_test.sort_index(level = ['Country', 'Date'], sort_remaining = False))
В обоих случаях я получил результат, где Group level isучаствует в процессе сортировки и имеет приоритет до Дата уровень:
Value
Date Group Country
2014-06-30 2 AE example
2014-07-31 2 AE example
2014-08-29 2 AE example
2014-09-30 2 AE example
2014-10-31 2 AE example
2014-11-28 2 AE example
2014-12-31 2 AE example
2014-01-31 3 AE example
2014-02-28 3 AE example
2014-03-31 3 AE example
2014-04-30 3 AE example
2014-01-31 3 AR example
2014-02-28 3 AR example
2014-03-31 3 AR example
2014-04-30 3 AR example
2014-05-30 3 AR example
2014-06-30 3 AR example
2014-07-31 3 AR example
2014-08-29 3 AR example
2014-09-30 3 AR example
2014-10-31 3 AR example
2014-11-28 3 AR example
2014-12-31 3 AR example
Я попытался использовать все параметры sort_index и добился неожиданного успеха с этим фрагментом кода:
print(ser_test.sort_index(level = ['Country', 'Date'], ascending = [True, True]))
Value
Date Group Country
2014-01-31 3 AE example
2014-02-28 3 AE example
2014-03-31 3 AE example
2014-04-30 3 AE example
2014-06-30 2 AE example
2014-07-31 2 AE example
2014-08-29 2 AE example
2014-09-30 2 AE example
2014-10-31 2 AE example
2014-11-28 2 AE example
2014-12-31 2 AE example
2014-01-31 3 AR example
2014-02-28 3 AR example
2014-03-31 3 AR example
2014-04-30 3 AR example
2014-05-30 3 AR example
2014-06-30 3 AR example
2014-07-31 3 AR example
2014-08-29 3 AR example
2014-09-30 3 AR example
2014-10-31 3 AR example
2014-11-28 3 AR example
2014-12-31 3 AR example
Это довольно странно, и я не уверен, что это универсальный способ получения гарантированного ожидаемого результата сортировки, в то время как с использованием MultiIndex является критически важным вариантом для меня.
Итак, вы можете помочь мне понять принципы sort_index и поделиться со мной фрагментом кода для этой части? Улар дело?