Добавление уровней в MultiIndex, удаление без потери

Предположим, у меня есть DataFramedf с MultiIndex и он имеет уровень L.

Есть ли способ удалить L из индекса и добавить его снова?

df = df.index.drop('L')полностью удаляет L из DataFrame (в отличие от df= df.reset_index(), который имеет аргумент отбрасывания ). Я, конечно, мог бы df = df.reset_index().set_index(everything_but_L, inplace=True).

Теперь предположим, что индекс содержит все, кроме L, и я хочу добавить L. df.index.insert(0, df.L)не работает. Опять же, я мог бы, конечно, позвонить df= df.reset_index().set_index(everything_including_L, inplace=True), но это кажется неправильным.

Зачем мне это нужно? Поскольку индексы не обязательно должны быть уникальными, может случиться так, что я захочу добавить новый столбец, чтобы индекс стал уникальным. Удаление может быть полезно в ситуациях, когда после разделения данных один уровень индекса больше не содержит никакой информации (скажем, мой индекс A, B, и я работаю с df с A = x, но я не хочу потерять A, который произойдет с index.droplevel ('A' )).

10
задан JJ for Transparency and Monica 11 March 2019 в 11:34
поделиться