Предположим, у меня есть DataFrame
df с 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' )).