Как отсортировать pandas фрейм данных на основе строки? - PullRequest
0 голосов
/ 20 июня 2020

У меня есть небольшой pandas фрейм данных, который выглядит так. Это pandas фрейм данных.

   STUDENT_ID    RESULT
1  Roll_1_name   Steve
2  Roll_2_name   Jhon
3  Roll_3_name   Maya
4  Roll_4_name   Andy


400 Roll_1_hobby Singing
401 Roll_2_hobby Gardening
402 Roll_3_hobby Swimming
403 Roll_4_hobby Dancing


700 Roll_1_result 100
701 Roll_2_result 70
702 Roll_3_result 90
703 Roll_4_result 100

Как преобразовать его, как показано ниже, используя pandas. Все должно быть отсортировано следующим образом.

   STUDENT_ID    RESULT
1  Roll_1_name   Steve
400 Roll_1_hobby Singing
700 Roll_1_result 100

2  Roll_2_name   Jhon
401 Roll_2_hobby Gardening
701 Roll_2_result 70


3  Roll_3_name   Maya
402 Roll_3_hobby Swimming
702 Roll_3_result 90

4  Roll_4_name   Andy
403 Roll_4_hobby Dancing
703 Roll_4_result 100

Ответы [ 2 ]

0 голосов
/ 20 июня 2020

Вы можете использовать df.sort_values(by=['STUDENT_ID']) для сортировки фрейма данных.

0 голосов
/ 20 июня 2020

Извлеките число из столбца Student_ID, отсортируйте фрейм данных с вновь созданным столбцом номеров и отбросьте столбец сортировщика.

(
    df.assign(number=df.STUDENT_ID.str.split("_").str[1])
    .sort_values("number")
    .drop("number", 1)
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...