Атрибут codes
Атрибут codes применяется к MultiIndex
и возвращает кортеж из массивов ndarray, где
каждый массив содержит целочисленные метки для
соответствующего уровня индекса. Эти коды указывают,
какой элемент из списка levels используется
в каждой позиции. Атрибут доступен только для чтения.
Синтаксис
multi_index.codes
Пример
Получим коды для мультииндекса с двумя уровнями:
import pandas as pd
multi = pd.MultiIndex.from_tuples([
('a', 1),
('a', 2),
('b', 1)
])
codes = multi.codes
print(codes)
Результат выполнения кода:
(FrozenList([0, 0, 1]), FrozenList([0, 1, 0]))
Пример
Получим коды для мультииндекса с тремя уровнями:
import pandas as pd
arrays = [
['A', 'A', 'B', 'B'],
[1, 2, 1, 2],
['x', 'y', 'x', 'y']
]
multi = pd.MultiIndex.from_arrays(arrays)
codes = multi.codes
for level, code in enumerate(codes):
print(f'Level {level}: {code}')
Результат выполнения кода:
Level 0: [0 0 1 1]
Level 1: [0 1 0 1]
Level 2: [0 1 0 1]
Пример
Используем коды для восстановления уровней в DataFrame:
import pandas as pd
multi = pd.MultiIndex.from_product([
['first', 'second'],
[1, 2, 3]
])
df = pd.DataFrame({
'value': range(1, 7)
}, index=multi)
codes = df.index.codes
levels = df.index.levels
print('Codes:', codes)
print('Levels:', levels)
Результат выполнения кода:
Codes: (FrozenList([0, 0, 0, 1, 1, 1]), FrozenList([0, 1, 2, 0, 1, 2]))
Levels: FrozenList([Index(['first', 'second'], dtype='object'), Index([1, 2, 3], dtype='int64')])
Смотрите также
-
атрибут
levels,
который возвращает уровни мультииндекса -
атрибут
names,
который возвращает имена уровней -
атрибут
nlevels,
который возвращает количество уровней -
класс
MultiIndex,
который представляет собой мультииндекс