Метод from_tuples
Метод from_tuples класса MultiIndex
создает мультииндекс на основе переданного списка кортежей.
Каждый кортеж определяет значения для всех уровней индекса.
Метод удобен, когда данные для индекса уже представлены
в виде кортежей, например, при загрузке из базы данных
или при преобразовании данных.
Первым параметром передается список кортежей.
Вторым параметром можно задать имена уровней через names.
Также доступны параметры sortorder для сортировки
и verify_integrity для проверки уникальности.
Синтаксис
pd.MultiIndex.from_tuples(tuples, names=None, sortorder=None, verify_integrity=True)
Пример
Создадим мультииндекс из списка кортежей для двух уровней:
import pandas as pd
tuples = [(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b')]
idx = pd.MultiIndex.from_tuples(tuples)
print(idx)
Результат выполнения кода:
MultiIndex([(1, 'a'),
(1, 'b'),
(2, 'a'),
(2, 'b')],
)
Пример
Создадим мультииндекс с указанием имен уровней:
import pandas as pd
tuples = [(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b')]
idx = pd.MultiIndex.from_tuples(tuples, names=['level1', 'level2'])
print(idx)
Результат выполнения кода:
MultiIndex([(1, 'a'),
(1, 'b'),
(2, 'a'),
(2, 'b')],
names=['level1', 'level2'])
Пример
Используем созданный мультииндекс в таблице DataFrame:
import pandas as pd
tuples = [(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b')]
idx = pd.MultiIndex.from_tuples(tuples, names=['num', 'letter'])
df = pd.DataFrame({
'a': [10, 20, 30, 40],
'b': [100, 200, 300, 400]
}, index=idx)
print(df)
Результат выполнения кода:
a b
num letter
1 a 10 100
b 20 200
2 a 30 300
b 40 400
Пример
Создадим мультииндекс с тремя уровнями из кортежей разной длины:
import pandas as pd
tuples = [(1, 'a', 'x'), (1, 'a', 'y'), (2, 'b', 'x')]
idx = pd.MultiIndex.from_tuples(tuples, names=['first', 'second', 'third'])
print(idx)
Результат выполнения кода:
MultiIndex([(1, 'a', 'x'),
(1, 'a', 'y'),
(2, 'b', 'x')],
names=['first', 'second', 'third'])
Смотрите также
-
метод
MultiIndex,
который представляет собой мультииндекс для таблиц и серий -
метод
from_product,
который создает мультииндекс из декартова произведения массивов -
метод
from_arrays,
который создает мультииндекс из массивов для каждого уровня -
метод
from_frame,
который создает мультииндекс из таблицы DataFrame