У меня есть df, сгруппированных с использованием мультииндекса (применен метод .groupby по двум столбцам).
Выполняю:
df_by_month_group.index.levels
Получаю:
FrozenList([[9, 10, 11], ['one', 'two', 'three']])
таким образом я могу получить доступ к первой части этого списка:
df_by_month_group.index.levels[0]
Получаю:
Int64Index([9, 10, 11], dtype='int64', name='month')
выполняю цикл
for i in df_by_month_group.index.levels[0]:
print(i)
ожидаемо получаю
9
10
11
А вот iloc для этого датафрейма не работает:
df_by_month_group.iloc[df_by_month_group.index.levels[0]==9]
IndexError: Boolean index has wrong length: 3 instead of 159
Как поправить?
Мне нужно обрезать мой исходный датафрейм таким образом, чтобы остались только значения, у которых в Мультииндексе первым элементом стоит 9.
Спасибо.
UPD:
(воспроизводимый результат)
first = [9,9,9,10,10,10]
second = ['one', 'two', 'three', 'one', 'two', 'three']
third = [10, 20, 30, 20, 40, 50]
test = pd.DataFrame(zip(first, second, third), columns=['mon', 'name', 'val'])
test_gr = test.groupby(['mon', 'name']).sum()
test_gr