Я получаю неожиданное сообщение об ошибке при попытке нарезать два уровня multiIndex ... Любая помощь о том, как это сделать?Пожалуйста, посмотрите на прикрепленный код ...
Я использую Python 3.7.1 и Pandas 0.23.4
У меня есть этот фрейм данных:
import pandas as pd
import itertools
index = list(itertools.product(['Ada','Quinn','Violet','Juan'],['Physics',
'Chemistry','Math','English']))
headr = list(itertools.product(['Exams','Labs', 'Particip'],
['I','II','III','IV']))
indx = pd.MultiIndex.from_tuples(index,names=['Student','Course'])
cols = pd.MultiIndex.from_tuples(headr) #Notice these are un-named
data = [[70+x+y+(x*y)%3 for x in range(12)] for y in range(16)]
df = pd.DataFrame(data,indx,cols)
dfls=df.sort_index(level=0);dfls
Как вы можетесм. ниже, я могу без проблем разделиться на один уровень данных:
dfls.loc[(('Ada','Quinn'),('Math','Chemistry')),('Labs',('I','IV'))]
получить:
Labs
I IV
Student Course
Ada Chemistry 76 79
Math 78 81
Quinn Chemistry 81 84
Math 80 83
Но когда я пытаюсь с двумя разными уровнями:
dfls.loc[(('Ada','Quinn'),('Math','Chemistry')),[('Exams',('I','III')),
('Labs',('II','IV'))]]
Я получаю следующее сообщение об ошибке:
ValueError: setting an array element with a sequence
Как мне избежать этого сообщения об ошибке и получить результат, который я ищу?Заранее благодарю ...