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

Метод to_flat_index

Метод to_flat_index применяется к MultiIndex и возвращает плоский Index, в котором каждый элемент представляет собой кортеж из значений всех уровней исходного мультииндекса. Метод не принимает параметров.

Синтаксис

multi_index.to_flat_index()

Пример

Давайте создадим MultiIndex из двух уровней и преобразуем его в плоский индекс:

import pandas as pd arrays = [ ['a', 'a', 'b', 'b'], [1, 2, 1, 2] ] multi = pd.MultiIndex.from_arrays(arrays, names=['first', 'second']) flat = multi.to_flat_index() print(flat)

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

Index([('a', 1), ('a', 2), ('b', 1), ('b', 2)], dtype='object')

Пример

Преобразуем мультииндекс из трёх уровней в плоский индекс:

import pandas as pd arrays = [ ['x', 'x', 'x', 'y', 'y', 'y'], [1, 1, 2, 1, 2, 2], ['a', 'b', 'c', 'a', 'b', 'c'] ] multi = pd.MultiIndex.from_arrays(arrays, names=['level1', 'level2', 'level3']) flat = multi.to_flat_index() print(flat)

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

Index([('x', 1, 'a'), ('x', 1, 'b'), ('x', 2, 'c'), ('y', 1, 'a'), ('y', 2, 'b'), ('y', 2, 'c')], dtype='object')

Пример

Используем to_flat_index для получения плоского индекса из мультииндекса DataFrame:

import pandas as pd df = pd.DataFrame( {'a': [1, 2, 3, 4, 5]}, index=pd.MultiIndex.from_tuples( [('x', 1), ('x', 2), ('y', 1), ('y', 2), ('z', 1)], names=['outer', 'inner'] ) ) flat = df.index.to_flat_index() print(flat)

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

Index([('x', 1), ('x', 2), ('y', 1), ('y', 2), ('z', 1)], dtype='object')

Пример

Создадим новый DataFrame с плоским индексом, полученным из мультииндекса:

import pandas as pd multi = pd.MultiIndex.from_product( [['a', 'b'], [1, 2, 3]], names=['letter', 'number'] ) df_original = pd.DataFrame({'value': [10, 20, 30, 40, 50, 60]}, index=multi) flat_index = df_original.index.to_flat_index() df_flat = pd.DataFrame(df_original.values, index=flat_index, columns=['value']) print(df_flat)

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

value (a, 1) 10 (a, 2) 20 (a, 3) 30 (b, 1) 40 (b, 2) 50 (b, 3) 60

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

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