Что такое lexsort_depth
многоиндексного фрейма? Почему его нужно сортировать для индексирования?
Например, я заметил, что после ручного создания мультииндекса dataframe df
со столбцами, организованными на трех уровнях, если я попытаюсь сделать:
idx = pd.IndexSlice
df[idx['foo', 'bar']]
Я получаю:
KeyError: 'Key length (2) was greater than MultiIndex lexsort depth (0)'
и в этот момент df.columns.lexsort_depth
есть 0
Однако, если я это сделаю, как рекомендовано здесь и здесь:
df = df.sortlevel(0,axis=1)
то работает индексация поперечного сечения. Зачем? Что такое lexsort_depth
, и почему сортировка с помощью sortlevel
исправляет этот тип индексирования?