Multi-índices a partir de un DataFrame

Por último, podemos crear el multi-índice a partir de un DataFrame en el que cada columna coincide con una columna del multi-índice. Comencemos creando el DataFrame:

df = pd.DataFrame({
    "Year":[2018, 2018, 2018, 2019, 2019, 2019],
    "Country": ["Spain", "Portugal", "France", "Spain", "Portugal", "France"]
})
df

DataFrame

Ahora podemos crear el índice:

index = pd.MultiIndex.from_frame(df)
index

MultiIndex([(2018,    'Spain'),
            (2018, 'Portugal'),
            (2018,   'France'),
            (2019,    'Spain'),
            (2019, 'Portugal'),
            (2019,   'France')],
           names=['Year', 'Country'])

...y nuestro DataFrame con índice jerárquico:

data = pd.DataFrame(data = [18, 20, 10, 15, 12, 18], index = index, columns = ["Sales"])
data

DataFrame con multi-índice