У меня есть фрейм данных Pandas вроде:
ID Group Rank include
1 Group1 1 0
2 Group1 2 1
3 Group1 3 0
4 Group1 4 1
5 Group2 1 0
6 Group2 2 0
7 Group2 3 1
8 Group2 4 1
9 Group2 5 1
Я хочу выбрать подмножество, которое удовлетворяет следующим условиям:
- максимум 3 ряда из группы
- включить все строки, которые включают include = 1 (их не более 3 на группу)
- минимизировать общий рейтинг по группе
По сути, я хочу выбрать TOP "N" записей из каждой группы, но строки с include = 1 имеют приоритет над остальными.
Фрейм выходных данных:
ID Group Rank include
1 Group1 1 0
2 Group1 2 1
4 Group1 4 1
7 Group2 3 1
8 Group2 4 1
9 Group2 5 1
Я пробовал несколько подходов, но ни один из них не сработал, и теперь я застрял.
Пожалуйста, помогите!