Выберите многоиндексные столбцы на основе нескольких меток второго уровня во фрейме данных Pandas

Я хотел бы выбрать столбцы во фрейме данных Pandas, который был построен с мультииндексом. В частности, я хотел бы выбрать столбцы на основе более чем одной метки второго уровня. Пример:

В следующем фрейме данных панд:

           bar       bar       baz       baz       foo       foo       qux  
           one       two       three     two       one       three    one   
A       0.895717  0.805244 -1.206412  2.565646  1.431256  1.340309 -1.170299   
B       0.410835  0.813850  0.132003 -0.827317 -0.076467 -1.187678  1.130127   
C      -1.413681  1.607920  1.024180  0.569605  0.875906 -2.211372  0.974466   

Как выбрать все столбцы на втором уровне с меткой "три" или "два", независимо от того, какие метки на первом уровне? Пожалуйста, имейте в виду, что это всего лишь пример фрейма данных, поэтому выбор всех меток, которые не являются "одним", мне не подходит.

Я старался

df_b = df.xs(['two','three'],level='second') 

или небольшие варианты без успеха. Любая помощь приветствуется. Спасибо!

1 ответ

Вы можете использовать некоторую комбинацию.loc. В вашем примере вы можете сделать это с помощью следующего кода:

idx = pd.IndexSlice
df.loc[idx[:],idx[:,['two','three']]]

Это должно вернуть то, что вы ищете. Это работает?

Другие вопросы по тегам