Метод droplevel
Метод droplevel применяется к объектам MultiIndex
(индексам DataFrame или Series) и позволяет удалять
один или несколько уровней иерархического индекса.
Первым параметром передаются уровни для удаления
(в виде позиции, названия или списка). Метод возвращает
новый индекс с удаленными уровнями, не изменяя исходный.
Синтаксис
multiindex.droplevel(level, axis=0)
Пример
Давайте удалим один уровень из MultiIndex по позиции:
import pandas as pd
idx = pd.MultiIndex.from_tuples([
('A', 'x', 1),
('A', 'y', 2),
('B', 'x', 3)
])
res = idx.droplevel(0)
print(res)
Результат выполнения кода:
MultiIndex([('x', 1),
('y', 2),
('x', 3)],
)
Пример
Давайте удалим уровень по его названию:
import pandas as pd
idx = pd.MultiIndex.from_tuples([
('A', 'x', 1),
('A', 'y', 2),
('B', 'x', 3)
], names=['first', 'second', 'third'])
res = idx.droplevel('first')
print(res)
Результат выполнения кода:
MultiIndex([('x', 1),
('y', 2),
('x', 3)],
names=['second', 'third'])
Пример
Давайте удалим несколько уровней одновременно:
import pandas as pd
idx = pd.MultiIndex.from_tuples([
('A', 'x', 1),
('A', 'y', 2),
('B', 'x', 3)
], names=['first', 'second', 'third'])
res = idx.droplevel([0, 2])
print(res)
Результат выполнения кода:
Index(['x', 'y', 'x'], dtype='object', name='second')
Пример
Давайте применим метод к DataFrame с MultiIndex в индексе строк:
import pandas as pd
df = pd.DataFrame(
{'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]},
index=pd.MultiIndex.from_tuples([
('A', 'x'),
('A', 'y'),
('B', 'x'),
('B', 'y'),
('C', 'x')
])
)
res = df.droplevel(0)
print(res)
Результат выполнения кода:
a b
x 1 10
y 2 20
x 3 30
y 4 40
x 5 50
Пример
Давайте удалим уровень из MultiIndex столбцов DataFrame:
import pandas as pd
df = pd.DataFrame(
[[1, 2, 3, 4],
[5, 6, 7, 8]],
columns=pd.MultiIndex.from_tuples([
('A', 'a'),
('A', 'b'),
('B', 'a'),
('B', 'b')
])
)
res = df.droplevel(0, axis=1)
print(res)
Результат выполнения кода:
a b a b
0 1 2 3 4
1 5 6 7 8
Смотрите также
-
класс
MultiIndex,
который создает иерархический индекс -
метод
swaplevel,
который меняет уровни индекса местами -
метод
reorder_levels,
который изменяет порядок уровней -
метод
get_level_values,
который получает значения указанного уровня