У меня есть dataframe, который выглядит следующим образом:подвыборки по столбцам мультииндексной панды DataFrame
u1 u2 u3 u4 u5 u6
level0 level1
foo1 x1 0 1 0 0 0 0
x2 0 1 1 0 1 1
foo2 x3 0 1 0 1 0 1
x4 1 0 0 0 1 1
foo3 x5 1 0 1 0 0 0
x6 0 1 1 1 0 0
foo4 x7 1 0 0 1 0 1
x8 0 1 1 1 0 0
Я хочу подвыбор только те индексы, для которых u3==1
. Так что, как выход, я должен получить что-то вроде:
u1 u2 u3 u4 u5 u6
level0 level1
foo1
x2 0 1 1 0 1 1
foo2
foo3 x5 1 0 1 0 0 0
x6 0 1 1 1 0 0
foo4
x8 0 1 1 1 0 0
Я пробовал делать:
idx = pd.IndexSlice
df.loc[idx[:,:],'u2']==1
, который дает:
level0 level1
foo1 x1 True
x2 True
foo2 x3 True
x4 False
foo3 x5 False
x6 True
foo4 x7 False
x8 True
, но я не знаю, как использовать этот для индексации исходного блока данных.
Любая помощь приветствуется.
Великий ответ! Очень ясно. Quick followup: как я могу выбрать все 'u?', Для которых 'x1 == 1' и' x3 == 1'? – reckoner
Очень четкий ответ. – reckoner