Я новичок в Пандах. Мне нужно отсортировать и сгруппировать значения данных в порядке убывания на основе циклического порядка внутри групп. У меня есть следующий датафрейм:
Col1 Col2
A 5030
B 4250
c 3340
D 2100
A 5044
B 4790
C 3482
C 3233
A 5099
B 4820
D 2345
D 2784
A 5999
Мне нужно отсортировать фрейм данных так, чтобы все значения в Col2
располагались в пределах Col1
в циклическом порядке, начиная с наивысшего и наименьшего. Например, сначала будут упорядочены все наивысшие значения (A, B, C, D), а затем последуют вторые наивысшие значения (A, B, C, D) и затем 3-е наивысшие значения (A, B, C, D) группа должна следовать и т. Д.
Конечный фрейм данных должен выглядеть следующим образом после сортировки:
Col1 Col2
A 5999
B 4820
C 3482
D 2784
A 5099
B 4790
C 3340
D 2345
A 5044
B 4250
C 3233
D 2100
A 5030
Col1
не будет иметь никаких других значений, кроме (A, B, C, D). Но могут быть сценарии, когда в Col1
присутствуют только 2 или 3 различных значения. Таким образом, логика должна быть сделана соответственно.
Я мог бы решить проблему, выполнив следующие шаги:
- Создание отдельных кадров данных на основе различных значений в
Col1
.
- Упорядочивание и индексация каждого из подкадров в порядке убывания на основе значений в
Col2
.
- Затем перебираем индексы субкадра и добавляем данные в новый кадр данных с каждого отдельного субкадра.
Этот процесс не кажется лучшим подходом. Поэтому я ищу предложения для более простого нативного решения.