Этот метод был разработан для этой цели.
frame.xs('Green', axis=1, level=1)
# frame.xs('Green', 1, 1)
Ohio Colorado
a 1 0 2
2 3 5
b 1 6 8
2 9 11
Или держите уровень
frame.xs('Green', axis=1, level=1, drop_level=False)
Ohio Colorado
Green Green
a 1 0 2
2 3 5
b 1 6 8
2 9 11
Это примерно эквивалентно:
Очевидно, сложнее, но интересно посмотреть.
frame.loc[:, frame.columns.get_level_values(1) == 'Green']
Или
frame.loc[:, frame.columns.labels[1] == frame.columns.levels[1].get_loc('Green')]
Мне не нравится этот способ, но он полезен для информативных целей
frame.swaplevel(0, 1, 1).Green
Ohio Colorado
a 1 0 2
2 3 5
b 1 6 8
2 9 11