У меня есть DataFrame с MultiIndex типа (int, datetime). Я хочу установить записи столбца «actual_12b1», которые равны 0.0 в NaN, но только если «begdt» (второй уровень MultiIndex) находится в 1998 году или раньше. После некоторых проб и ошибок, я закончил с следующим кодом:Вырезать DataFrame на втором уровне MultiIndex, который является датой
year_start1999 = datetime(year=1999, month=1, day=1).date()
cond1 = data.index.get_level_values('begdt') < year_start1999
cond2 = data.actual_12b1 == 0.0
data.actual_12b1[cond1 * cond2] = np.nan
Код работает, но это кажется слишком сложным. Поскольку я новичок в пандах (и смущен всей этой нарезкой/фильтрацией), я думал, что кто-то может предложить более чистый способ добиться того же результата.
Именно то, что я искал, это более читаемо! – vgregoire