У меня есть расширенная функция сопоставления индексов в Excel, которую я хотел бы преобразовать в Python. Функция Excel возвращает оценку следующего уровня из таблицы данных. Функция массива Excel:
={IFERROR(IF(ISTEXT(R2),INDEX(NextLevel,MATCH(1,(R2=Placement)*(D2=Grade),0))," "),"")}
Где ячейка R2 - текстовая ячейка, описывающая уровень размещения (Уровень 1, Уровень 2, Уровень 3 и т. Д. c.). NextLevel, Placement и Grade - все именованные диапазоны в моей таблице LookUp
Таблица поиска выглядит примерно так (где каждый уровень оценки соответствует уровню производительности от 1 до 12):
Grade Placement Next Level
1 Level 1 100
1 Level 2 200
1 Level 3 300
... ... ...
1 Level 12 1200
2 Level 1 110
2 Level 2 220
... ... ...
2 Level 12 1210
... ... ...
12 Level 1 112
12 Level 2 212
... ... ...
12 Level 12 1220
Мне нужно вернуть оценку следующего уровня в столбец моего Pandas кадра данных для каждого учащегося на основе уровня успеваемости и оценки. Из приведенной выше функции Excel видно, что она проверяет значение в R2 (уровень размещения) по отношению к именованному диапазону уровня размещения и возвращает значение ИСТИНА всякий раз, когда оно совпадает. Затем он делает то же самое для класса. Затем он умножает эти массивы вместе, и если результат равен 1, функция MATCH возвращает номер строки в функцию INDEX, которая затем возвращает оценку следующего уровня. Таким образом, если ученик 12-го класса будет работать на уровне 2, он вернет значение 212. Как показано выше.
Я пытаюсь повторить этот же процесс в Python, но я не так хорош в Python как я в Excel. Я могу визуализировать решение, но не могу поместить его в код. Любая помощь с благодарностью.