Метод set_names
Метод set_names применяется к MultiIndex
и устанавливает новые имена для уровней индекса.
Первым параметром передаётся имя или список имён,
вторым параметром можно указать уровень (уровни),
к которым применяется изменение. Метод возвращает
новый мультииндекс с обновлёнными именами.
Синтаксис
multiindex.set_names(names[, level=...])
Пример
Давайте создадим мультииндекс и установим имена для всех уровней:
import pandas as pd
index = pd.MultiIndex.from_tuples([(1, 'a'), (2, 'b'), (3, 'c')])
print("Original names:", index.names)
new_index = index.set_names(['level_1', 'level_2'])
print("New names:", new_index.names)
Результат выполнения кода:
Original names: [None, None]
New names: ['level_1', 'level_2']
Пример
Установим имя только для первого уровня мультииндекса:
import pandas as pd
index = pd.MultiIndex.from_tuples([(1, 'a'), (2, 'b'), (3, 'c')])
new_index = index.set_names('first_level', level=0)
print(new_index.names)
Результат выполнения кода:
['first_level', None]
Пример
Изменим имена уровней в существующем DataFrame с мультииндексом:
import pandas as pd
df = pd.DataFrame(
[[1, 2], [3, 4], [5, 6]],
index=pd.MultiIndex.from_tuples([(1, 'a'), (2, 'b'), (3, 'c')])
)
print("Before:", df.index.names)
df.index = df.index.set_names(['num', 'letter'])
print("After:", df.index.names)
Результат выполнения кода:
Before: [None, None]
After: ['num', 'letter']
Пример
Передадим строку в качестве имени для одного уровня, указав его по имени:
import pandas as pd
index = pd.MultiIndex.from_tuples(
[(1, 'a'), (2, 'b'), (3, 'c')],
names=['first', 'second']
)
new_index = index.set_names('new_name', level='first')
print(new_index.names)
Результат выполнения кода:
['new_name', 'second']
Смотрите также
-
атрибут
names,
который возвращает имена уровней мультииндекса -
метод
get_level_values,
который возвращает значения определённого уровня -
метод
droplevel,
который удаляет уровни мультииндекса -
метод
swaplevel,
который меняет уровни мультииндекса местами