РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
280 of 687 menu

Класс MultiIndex

Класс MultiIndex применяется в Pandas для создания иерархических индексов, которые позволяют работать с многомерными данными. MultiIndex может быть создан из кортежей, массивов, произведения множеств или других структур данных. Уровни индекса имеют свои имена и коды, а также количество уровней доступно через атрибуты.

Создание MultiIndex из массивов

Создадим многоуровневый индекс из двух массивов:

import pandas as pd arrays = [ [1, 1, 2, 2, 3, 3], ['a', 'b', 'a', 'b', 'a', 'b'] ] index = pd.MultiIndex.from_arrays(arrays) print(index)

Результат выполнения кода:

MultiIndex([(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b'), (3, 'a'), (3, 'b')], )

Создание MultiIndex из кортежей

Создадим индекс из списка кортежей:

import pandas as pd tuples = [(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b')] index = pd.MultiIndex.from_tuples(tuples) print(index)

Результат выполнения кода:

MultiIndex([(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b')], )

Создание MultiIndex через произведение

Используем метод from_product для создания декартова произведения множеств:

import pandas as pd index = pd.MultiIndex.from_product( [[1, 2, 3], ['a', 'b']] ) print(index)

Результат выполнения кода:

MultiIndex([(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b'), (3, 'a'), (3, 'b')], )

Создание DataFrame с MultiIndex

Создадим таблицу с многоуровневым индексом:

import pandas as pd arrays = [ [1, 1, 2, 2], ['a', 'b', 'a', 'b'] ] index = pd.MultiIndex.from_arrays(arrays) df = pd.DataFrame( {'a': [10, 20, 30, 40], 'b': [100, 200, 300, 400]}, index=index ) print(df)

Результат выполнения кода:

a b 1 a 10 100 b 20 200 2 a 30 300 b 40 400

Получение уровней индекса

Получим значения уровня 0 с помощью метода get_level_values:

import pandas as pd arrays = [ [1, 1, 2, 2], ['a', 'b', 'a', 'b'] ] index = pd.MultiIndex.from_arrays(arrays) values = index.get_level_values(0) print(values)

Результат выполнения кода:

Index([1, 1, 2, 2], dtype='int64')

Удаление уровня индекса

Удалим уровень 1 с помощью метода droplevel:

import pandas as pd arrays = [ [1, 1, 2, 2], ['a', 'b', 'a', 'b'] ] index = pd.MultiIndex.from_arrays(arrays) df = pd.DataFrame( {'a': [10, 20, 30, 40]}, index=index ) print(df.droplevel(1))

Результат выполнения кода:

a 1 10 1 20 2 30 2 40

Перестановка уровней

Поменяем уровни местами методом swaplevel:

import pandas as pd arrays = [ [1, 1, 2, 2], ['a', 'b', 'a', 'b'] ] index = pd.MultiIndex.from_arrays(arrays) df = pd.DataFrame( {'a': [10, 20, 30, 40]}, index=index ) print(df.swaplevel(0, 1))

Результат выполнения кода:

a a 1 10 b 1 20 a 2 30 b 2 40

Атрибуты MultiIndex

Получим количество уровней с помощью атрибута nlevels:

import pandas as pd arrays = [ [1, 1, 2, 2], ['a', 'b', 'a', 'b'], ['x', 'y', 'x', 'y'] ] index = pd.MultiIndex.from_arrays(arrays) print(index.nlevels)

Результат выполнения кода:

3

Смотрите также

  • метод from_arrays,
    который создаёт MultiIndex из массивов
  • метод from_tuples,
    который создаёт MultiIndex из кортежей
  • метод from_product,
    который создаёт MultiIndex из произведения множеств
  • метод swaplevel,
    который меняет местами уровни индекса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить