Метод 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,
который создаёт мультииндекс из декартова произведения