Выберите многоиндексные столбцы на основе нескольких меток второго уровня во фрейме данных 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']]]
Это должно вернуть то, что вы ищете. Это работает?