Сортировка порядкового столбца

Grace

Новичок
Пользователь
Сен 8, 2020
12
0
1
Здравствуйте!
У меня есть такой датасет:
1614838207434.png
Код:
Frame = {'Name':['Том', 'Ник','Роза', 'Крис', 'Джек','Шон', 'Сью'], 'Тumber of injuries':[2, 5,1, 9, 8,5,0], 'Family status':['дед','папа','мама','прадед','папа','дед','мама']}
Frame =pd.DataFrame(Frame)
Frame

Мне необходимо отсортировать датафрейм по столбцу Family status, но в таком порядке:
1.мама
2.дед
3.прадед
4.папа

Каким образом можно это описать? Вариант с заданием дополнительного столбца с индексацией необходимого столбца - не лучший вариант в глобальной задаче.
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Каким образом можно это описать?
Можно так например:
Python:
import pandas as pd


Frame = {'Name':['Том', 'Ник','Роза', 'Крис', 'Джек','Шон', 'Сью'], 'Тumber of injuries':[2, 5,1, 9, 8,5,0], 'Family status':['дед','папа','мама','прадед','папа','дед','мама']}
Frame = pd.DataFrame(Frame)

sort_order = {'мама': 0, 'дед': 1, 'прадед': 2, 'папа': 3}
Frame.sort_values(by='Family status', key=lambda x: x.map(sort_order))
 
  • Мне нравится
Реакции: Grace

Grace

Новичок
Пользователь
Сен 8, 2020
12
0
1
Можно так например:
Python:
import pandas as pd


Frame = {'Name':['Том', 'Ник','Роза', 'Крис', 'Джек','Шон', 'Сью'], 'Тumber of injuries':[2, 5,1, 9, 8,5,0], 'Family status':['дед','папа','мама','прадед','папа','дед','мама']}
Frame = pd.DataFrame(Frame)

sort_order = {'мама': 0, 'дед': 1, 'прадед': 2, 'папа': 3}
Frame.sort_values(by='Family status', key=lambda x: x.map(sort_order))
отлично! спасибо.
 

Форум IT Специалистов