这是我数据库的简化版本。
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
我正在尝试选择2016年B列中的值为零的所有商店。因此,在这种情况下,我希望选择商店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
预先感谢您的帮助或建议。
答案 0 :(得分:2)
您可以使用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