Атрибут names
Атрибут names применяется к объекту MultiIndex и позволяет получить кортеж с именами всех уровней индекса. Также этот атрибут используется для переименования уровней мультииндекса путём присваивания ему нового списка имён. Если индекс не является мультииндексом, атрибут возвращает имя одиночного индекса.
Синтаксис
index.names
Пример
Давайте создадим мультииндекс с двумя уровнями и получим имена его уровней:
import pandas as pd
arrays = [
['A', 'A', 'B', 'B'],
[1, 2, 1, 2]
]
index = pd.MultiIndex.from_arrays(
arrays,
names=['first', 'second']
)
print(index.names)
Результат выполнения кода:
"['first', 'second']"
Пример
Давайте изменим имена уровней мультииндекса через присваивание атрибуту names:
import pandas as pd
arrays = [
['A', 'A', 'B', 'B'],
[1, 2, 1, 2]
]
index = pd.MultiIndex.from_arrays(
arrays,
names=['first', 'second']
)
index.names = ['level_1', 'level_2']
print(index.names)
Результат выполнения кода:
"['level_1', 'level_2']"
Пример
Давайте получим имя для обычного индекса (не мультииндекса):
import pandas as pd
ser = pd.Series(
[1, 2, 3, 4, 5],
index=pd.Index(['a', 'b', 'c', 'd', 'e'], name='letters')
)
print(ser.index.names)
Результат выполнения кода:
"['letters']"
Пример
Давайте зададим имя для обычного индекса через атрибут names:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
df.index.names = ['row_id']
print(df)
Результат выполнения кода:
a b
row_id
0 1 10
1 2 20
2 3 30
3 4 40
4 5 50