Это мой мультииндексный фрейм данных:
A B C D E F G H I J
Chars Date
2020 January 4.0 66 45 26 99 20 13.5 15 3.8 3.2
2020 February 4.0 66 45 26 99 20 13.5 15 3.8 3.2
2020 March 4.0 66 45 26 99 20 13.5 15 3.8 3.2
2020 April 4.0 66 45 26 99 20 13.5 15 3.8 3.2
Chars2 2020 January 4.0 66 45 26 99 20 13.5 15 3.8 3.2
2020 February 4.0 66 45 26 99 20 13.5 15 3.8 3.2
2020 March 4.0 66 45 26 99 20 13.5 15 3.8 3.2
2020 April 4.0 66 45 26 99 20 13.5 15 3.8 3.2
Например, я хочу внести изменения в марте и после марта, но только в столбце «B». Как я могу это сделать?
Я пытался:
df.xs('Chars2')[df['B'].index.get_level_values(1).month >= 3] = 20.40
Я получил эту ошибку:
AttributeError: 'Index' object has no attribute 'month'
И затем я попробовал что-то подобное. Но я не смог достичь желаемого результата.
df.loc[pd.IndexSlice['B', pd.to_datetime(df.index.get_level_values(1), errors = 'coerce').month >= 3] = 20.40
Мой ожидаемый результат:
A B C D E F G H I J
Chars Date
2020 January 4.0 66 45 26 99 20 13.5 15 3.8 3.2
2020 February 4.0 66 45 26 99 20 13.5 15 3.8 3.2
2020 March 4.0 66 45 26 99 20 13.5 15 3.8 3.2
2020 April 4.0 66 45 26 99 20 13.5 15 3.8 3.2
Chars2 2020 January 4.0 66 45 26 99 20 13.5 15 3.8 3.2
2020 February 4.0 66 45 26 99 20 13.5 15 3.8 3.2
2020 March 4.0 20.4 45 26 99 20 13.5 15 3.8 3.2
2020 April 4.0 20.4 45 26 99 20 13.5 15 3.8 3.2