Выбор строк из кадра данных Pandas с составным (иерархическим )индексом

Я подозреваю, что это тривиально, но мне еще предстоит обнаружить заклинание, которое позволит мне выбирать строки из фрейма данных Pandas на основе значений иерархического ключа. Итак, например, представьте, что у нас есть следующий фрейм данных:

import pandas
df = pandas.DataFrame({'group1': ['a','a','a','b','b','b'],
                       'group2': ['c','c','d','d','d','e'],
                       'value1': [1.1,2,3,4,5,6],
                       'value2': [7.1,8,9,10,11,12]
})
df = df.set_index(['group1', 'group2'])

df выглядит так, как мы и ожидали:

enter image description here

Если бы df не был проиндексирован в группе1, я мог бы сделать следующее:

df['group1' == 'a']

Но это не работает в этом кадре данных с индексом. Так что, возможно, мне следует думать об этом как о серии Pandas с иерархическим индексом:

df['a','c']

Неа. Это тоже не удается.

Итак, как мне выбрать все строки, где:

  1. группа1 == 'а'
  2. группа1 == 'а' и группа2 == 'с'
  3. группа2 == 'с'
  4. группа1 в ['a','b','c']
33
задан cs95 21 January 2019 в 22:43
поделиться