Есть ли противоположная функция pandas.DataFrame.droplevel
, где я могу сохранить некоторые уровни многоуровневого индекса / столбцов, используя либо имя уровня, либо индекс?
Пример:
df = pd.DataFrame([
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]
], columns=['a','b','c','d']).set_index(['a','b','c']).T
a 1 5 9 13
b 2 6 10 14
c 3 7 11 15
d 4 8 12 16
Обе следующие команды могут возвращать следующий фрейм данных:
df.droplevel(['a','b'], axis=1)
df.droplevel([0, 1], axis=1)
c 3 7 11 15
d 4 8 12 16
Я ищу команду "keeplevel", чтобы обе следующие команды могли возвращать следующий фрейм данных:
df.keeplevel(['a','b'], axis=1)
df.keeplevel([0, 1], axis=1)
a 1 5 9 13
b 2 6 10 14
d 4 8 12 16