У меня следующая структура данных
+------+------+-------+----------------------+--------------------+
| uuid | type | score | next_score_incorrect | next_score_correct |
+------+------+-------+----------------------+--------------------+
| 0 | A | 100 | 110 | 120 |
| 0 | A | 110 | 120 | 120 |
| 0 | B | 120 | na | na |
| 1 | B | 80 | 90 | 100 |
| 1 | A | 90 | 100 | 100 |
| 1 | B | 100 | na | na |
+------+------+-------+----------------------+--------------------+
Для каждой записи я пытаюсь вычислить следующий наибольший счет в том же UUID, но только из записей типа B (пример столбца next_score_correct). До сих пор мне удавалось рассчитать следующий наибольший балл, игнорируя тип, выполнив следующее (столбец next_score_incorrect):
df.sort_values(by='score', ascending=True, inplace=True)
df.groupby('uuid')['score'].shift(periods=-1)
Как мне настроить свой код, чтобы учесть, что я хочу сдвинуть на следующий счет типа B, который не обязательно следующий?