Это упрощенная версия моей базы данных.
A B
Store Product Year
A 1 2014 12 63
2 2015 32 5
3 2016 45 0
B 1 2014 45 0
2 2015 6 19
3 2016 7 4
C 1 2014 98 5
2 2015 54 43
3 2016 28 0
D 1 2014 4 6
2 2015 32 67
3 2016 1 5
Я пытаюсь выбрать все магазины, где значение в столбце B в 2016 году равно нулю. Итак, в этом случае я хочу выбрать магазин A и C.
df = df[df['B']==0]
Выбирает только отдельные строки, где B = 0. В то время как я хочу выбрать это
A B
Store Product Year
A 1 2014 12 63
2 2015 32 5
3 2016 45 0
C 1 2014 98 5
2 2015 54 43
3 2016 28 0
Заранее спасибо за помощь или совет.






Вы можете использовать index.get_level_values для создания маски, а затем булевой индексации:
mask = df[(df.index.get_level_values('Year') == 2016) & (df['B']==0)].index.get_level_values('Store')
df[df.index.get_level_values('Store').isin(mask)]
A B
Store Product Year
A 1 2014 12 63
2 2015 32 5
3 2016 45 0
C 1 2014 98 5
2 2015 54 43
3 2016 28 0
Спасибо, хорошо работает