Werte in einem Pandas Multi-Index ersetzen

Ich habe einen Datenrahmen mit einem Multi-Index. Ich möchte den Wert des 2. Index ändern, wenn bestimmte Bedingungen für den ersten Index erfüllt sind. Ich habe hier eine ähnliche (aber andere) Frage gefunden:Einen Wert in MultiIndex (Pandas) ersetzen, das meinen Punkt nicht beantwortet, da es sich um das Ändern einer einzelnen Zeile handelte und die Lösung auch den Wert des ersten Indexes übergab (der nicht geändert werden musste). In meinem Fall habe ich es mit mehreren Zeilen zu tun, und ich konnte diese Lösung nicht an meinen Fall anpassen.

Ein minimales Beispiel meiner Daten ist unten. Vielen Dank

import pandas as pd
import numpy as np

consdf=pd.DataFrame()

for mylocation in ['North','South']:
    for scenario in np.arange(1,4):
        df= pd.DataFrame()
        df['mylocation'] = [mylocation]
        df['scenario']= [scenario]
        df['this'] = np.random.randint(10,100)
        df['that'] = df['this']  * 2
        df['something else']  = df['this'] * 3
        consdf=pd.concat((consdf, df ), axis=0, ignore_index=True)

mypiv = consdf.pivot('mylocation','scenario').transpose()

level_list =['this','that']
# if level 0 is in level_list --> set level 1 to np.nan
mypiv.iloc[mypiv.index.get_level_values(0).isin(level_list)].index.set_levels([np.nan], level =1, inplace=True)

Die letzte Zeile funktioniert nicht: Ich bekomme:

ValueError: On level 1, label max (2) >= length of level  (1). NOTE: this index is in an inconsistent state

Antworten auf die Frage(4)

Ihre Antwort auf die Frage