Метод swaplevel
Метод swaplevel применяется к MultiIndex
и меняет местами два указанных уровня. Первым
параметром передаётся первый уровень, вторым - второй уровень.
Если параметры не указаны, меняются местами последние два уровня.
Метод возвращает новый MultiIndex с переставленными уровнями.
Синтаксис
multiindex.swaplevel(i=-2, j=-1)
Пример
Давайте создадим MultiIndex и поменяем местами уровни:
import pandas as pd
arrays = [['A', 'A', 'B', 'B'], [1, 2, 1, 2]]
idx = pd.MultiIndex.from_arrays(arrays, names=['letters', 'numbers'])
print(idx)
print('\nAfter swaplevel:')
print(idx.swaplevel(0, 1))
Результат выполнения кода:
MultiIndex([('A', 1),
('A', 2),
('B', 1),
('B', 2)],
names=['letters', 'numbers'])
After swaplevel:
MultiIndex([(1, 'A'),
(2, 'A'),
(1, 'B'),
(2, 'B')],
names=['numbers', 'letters'])
Пример
Давайте поменяем местами уровни в DataFrame с MultiIndex:
import pandas as pd
arrays = [['A', 'A', 'B', 'B'], [1, 2, 1, 2]]
idx = pd.MultiIndex.from_arrays(arrays, names=['letters', 'numbers'])
df = pd.DataFrame({'a': [1, 2, 3, 4], 'b': [10, 20, 30, 40]}, index=idx)
print('Original:')
print(df)
print('\nAfter swaplevel:')
print(df.swaplevel(0, 1))
Результат выполнения кода:
Original:
a b
letters numbers
A 1 1 10
2 2 20
B 1 3 30
2 4 40
After swaplevel:
a b
numbers letters
1 A 1 10
2 A 2 20
1 B 3 30
2 B 4 40
Пример
Давайте используем метод без указания параметров, чтобы поменять местами последние два уровня:
import pandas as pd
arrays = [['A', 'A', 'B', 'B'], [1, 2, 1, 2], ['X', 'Y', 'X', 'Y']]
idx = pd.MultiIndex.from_arrays(arrays, names=['letters', 'numbers', 'codes'])
df = pd.DataFrame({'a': [1, 2, 3, 4]}, index=idx)
print('Original:')
print(df)
print('\nAfter swaplevel:')
print(df.swaplevel())
Результат выполнения кода:
Original:
a
letters numbers codes
A 1 X 1
2 Y 2
B 1 X 3
2 Y 4
After swaplevel:
a
letters codes numbers
A X 1 1
Y 2 2
B X 1 3
Y 2 4
Смотрите также
-
класс
MultiIndex,
который представляет собой иерархический индекс -
метод
droplevel,
который удаляет указанные уровни -
метод
reorder_levels,
который изменяет порядок уровней -
метод
get_level_values,
который возвращает значения указанного уровня