Я отсортировал свой первый уровень индекса, используя следующий метод: Пользовательская функция порядка сортировки для python groupby
def my_func(group):
return sum(group["B"]*group["C"])
idx=df.groupby('A').apply(my_func).reindex(df.index.get_level_values(0))
df.iloc[idx.argsort()]
Проблема заключается в том, что порядок второго уровня перемешанпосле сортировки по первому.Как я могу убедиться, что внутригрупповой порядок сохраняется?
от
A B C
1 0 1 8
1 3 3
2 0 1 2
1 2 2
3 0 1 3
1 2 4
до
A B C
2 0 1 2
1 2 2
3 0 1 3
1 2 4
1 0 1 8
1 3 3
и нет (последние 2 строки инвертированы)
A B C
2 0 1 2
1 2 2
3 0 1 3
1 2 4
1 1 3 3
0 1 8