Замена значений в мультииндексе панд

У меня есть датафрейм с мультииндексом. Я хочу изменить значение 2-го индекса, когда выполняются определенные условия для первого индекса. Я нашел похожий (но другой) вопрос здесь:Заменить значение в MultiIndex (панды) что не отвечает моей точке зрения, потому что речь шла об изменении одной строки, и решение также передало значение первого индекса (который не нуждался в изменении). В моем случае я имею дело с несколькими строками, и мне не удалось адаптировать это решение к моему случаю.

Минимальный пример моих данных ниже. Спасибо!

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)

Последняя строка не работает: я получаю:

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

Ответы на вопрос(2)

Ваш ответ на вопрос