Multi-índices a partir de un array de tuplas

En este segundo método indicamos los valores del multi-índice valor por valor, siendo éstos tuplas:

index = pd.MultiIndex.from_tuples(
    [
    (2018, "Spain"),
    (2018, "Portugal"),
    (2018, "France"),
    (2019, "Spain"),
    (2019, "Portugal"),
    (2019, "France")
    ],
    names = ["Year", "Country"])
index

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

Seguimos teniendo a nuestra disposición el parámetro names para especificar los nombres de los niveles.

Si creamos nuestro DataFrame vemos que el resultado es el mismo que el que habíamos obtenido:

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

DataFrame con multi-índice