Вы можете использовать следующий базовый синтаксис для выравнивания MultiIndex в pandas:
#flatten all levels of MultiIndex
df.reset_index(inplace= True )
#flatten specific levels of MultiIndex
df.reset_index(inplace= True , level = ['level_name'])
В следующих примерах показано, как использовать этот синтаксис на практике.
Пример 1. Сведение всех уровней MultiIndex в Pandas
Предположим, у нас есть следующий DataFrame MultiIndex pandas:
import pandas as pd
#create DataFrame
index_names = pd.MultiIndex.from_tuples([('Level1','Lev1', 'L1'),
('Level2','Lev2', 'L2'),
('Level3','Lev3', 'L3'),
('Level4','Lev4', 'L4')],
names=['Full','Partial', 'ID'])
data = {'Store': ['A','B','C','D'],
'Sales': [12, 44, 29, 35]}
df = pd.DataFrame(data, columns = ['Store',' Sales'], index=index_names)
#view DataFrame
df
Store Sales
Full Partial ID
Level1 Lev1 L1 A 17
Level2 Lev2 L2 B 22
Level3 Lev3 L3 C 29
Level4 Lev4 L4 D 35
Мы можем использовать следующий синтаксис, чтобы объединить каждый уровень MultiIndex в столбцы в DataFrame:
#flatten every level of MultiIndex
df.reset_index(inplace= True )
#view updated DataFrame
df
Full Partial ID Store Sales
0 Level1 Lev1 L1 A 12
1 Level2 Lev2 L2 B 44
2 Level3 Lev3 L3 C 29
3 Level4 Lev4 L4 D 35
Обратите внимание, что каждый уровень MultiIndex теперь является столбцом в DataFrame.
Пример 2: выравнивание определенных уровней MultiIndex в Pandas
Предположим, у нас есть тот же DataFrame pandas, что и в предыдущем примере:
#view DataFrame
df
Store Sales
Full Partial ID
Level1 Lev1 L1 A 12
Level2 Lev2 L2 B 44
Level3 Lev3 L3 C 29
Level4 Lev4 L4 D 35
В следующем коде показано, как сгладить только один конкретный уровень MultiIndex:
#flatten 'ID' level only
df.reset_index(inplace= True , level = ['ID'])
#view updated DataFrame
df
ID Store Sales
Full Partial
Level1 Lev1 L1 A 12
Level2 Lev2 L2 B 44
Level3 Lev3 L3 C 29
Level4 Lev4 L4 D 35
А следующий код показывает, как сгладить несколько определенных уровней MultiIndex:
#flatten 'ID' level only
df.reset_index(inplace= True , level = ['Partial', 'ID'])
#view updated DataFrame
df
Partial ID Store Sales
Full
Level1 Lev1 L1 A 12
Level2 Lev2 L2 B 44
Level3 Lev3 L3 C 29
Level4 Lev4 L4 D 35
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные функции в pandas:
Как преобразовать индекс в столбец в Pandas
Как переименовать индекс в Pandas
Как установить столбец в качестве индекса в Pandas