Я подозреваю, что это тривиально, но я еще не обнаружил заклинание, которое позволит мне выбирать строки в кадре данных 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 выглядит так, как мы ожидаем:
Если бы df не был проиндексирован на group1, я мог бы сделать следующее:
df['group1' == 'a']
Но это терпит неудачу на этом фрейме данных с индексом. Так что, возможно, мне следует подумать об этом как о серии Панд с иерархическим индексом:
df['a','c']
Нету. Это также не удается.
Так как же выбрать все строки, где:
- group1 == 'a'
- group1 == 'a' & group2 == 'c'
- group2 == 'c'
- group1 в ['a', 'b', 'c']