Метод to_frame
Метод to_frame применяется к объекту MultiIndex
и преобразует его в DataFrame. Каждый уровень мультииндекса
становится отдельным столбцом результирующей таблицы.
Первый параметр index позволяет указать, нужно ли
добавлять исходный индекс в таблицу. Если параметр не указан,
по умолчанию возвращается таблица без индекса.
Синтаксис
multiindex.to_frame([index])
Пример
Давайте создадим мультииндекс из двух уровней и преобразуем его в таблицу:
import pandas as pd
arrays = [['A', 'A', 'B', 'B'], [1, 2, 1, 2]]
multiindex = pd.MultiIndex.from_arrays(arrays, names=['letter', 'number'])
df_multi = multiindex.to_frame()
print(df_multi)
Результат выполнения кода:
letter number
0 A 1
1 A 2
2 B 1
3 B 2
Пример
Теперь преобразуем мультииндекс с сохранением исходного индекса, передав параметр index равным True:
import pandas as pd
tuples = [(2020, 'Q1'), (2020, 'Q2'), (2021, 'Q1')]
multiindex = pd.MultiIndex.from_tuples(tuples, names=['year', 'quarter'])
df_multi = multiindex.to_frame(index=True)
print(df_multi)
Результат выполнения кода:
year quarter
(2020, Q1) 2020 Q1
(2020, Q2) 2020 Q2
(2021, Q1) 2021 Q1
Пример
Если мультииндекс не имеет имен уровней, столбцы в таблице получат стандартные названия level_0, level_1 и т.д.:
import pandas as pd
arrays = [[1, 2, 3], ['a', 'b', 'c']]
multiindex = pd.MultiIndex.from_arrays(arrays)
df_multi = multiindex.to_frame()
print(df_multi)
Результат выполнения кода:
level_0 level_1
0 1 a
1 2 b
2 3 c
Смотрите также
-
класс
MultiIndex,
который представляет собой иерархический индекс -
метод
from_arrays,
который создаёт мультииндекс из списков -
метод
from_tuples,
который создаёт мультииндекс из кортежей -
метод
to_flat_index,
который преобразует мультииндекс в плоский индекс