pandas Categorical: сортировка по порядку категорий
Приоритеты «низкая», «средняя» и «высокая» должны идти в рабочем порядке, а не по алфавиту. В этой задаче нужно починить CategoricalDtype и сохранить результат преобразования в DataFrame. Затем проверьте и порядок строк, и тип столбца.
Найди и исправь: три ошибки в CategoricalDtype, astype и sort_values
Что уже дано
В редакторе уже есть сломанный код. В нём ровно три ошибки в трёх независимых строках:
pd.CategoricalDtypeсоздан сordered=False, хотя по условию нужна упорядоченная шкала (ordered=True).- Результат
astype(cat_dtype)не присвоен обратно вdf['urgency']— столбец остаётсяobject, и сортировка идёт алфавитно. - Для вывода флага упорядоченности используется
df_sorted['urgency'].dtypeвместоdf_sorted['urgency'].cat.ordered.
Каждая ошибка находится в отдельной строке кода. Исправьте все три.
Что нужно сделать
Исправьте три ошибки так, чтобы программа:
- Читала из
stdinцелое числоn— количество строк таблицы. - Читала следующие
nстрок; каждая содержит два токена через пробел:task(строка без пробелов) иurgency(одно из словнизкая,средняя,высокая). Создавалаpd.DataFrameс именемdfсо столбцами'task'и'urgency'. - Создавала
cat_dtype = pd.CategoricalDtype(categories=['низкая', 'средняя', 'высокая'], ordered=True)и присваивала тип столбцуdf['urgency']черезastype, сохраняя результат обратно. - Сортировала
dfпо'urgency'черезsort_valuesи сохраняла вdf_sorted. - Выводила в
stdoutровно три строки:
- значения
df_sorted['urgency'].tolist()как строку Python; str(df_sorted['urgency'].dtype);str(df_sorted['urgency'].cat.ordered).
Ввод и вывод
Программа читает stdin и пишет в stdout.
Формат ввода
n task1 urgency1 task2 urgency2 ...
Формат вывода
<urgency.tolist() как строка Python>
<dtype>
<cat.ordered>
Пример
- Ввод
5 T1 высокая T2 низкая T3 средняя T4 низкая T5 высокая
- Вывод
['низкая', 'низкая', 'средняя', 'высокая', 'высокая'] category True
РешениеPython
Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.
Отправьте решение, чтобы увидеть результаты тестов.
Связанные задачи
- Pandas Categorical: сортировка по заданному порядку
- Категориальные столбцы: CategoricalDtype и упорядоченная сортировка — задача по NumPy и pandas
- pandas CategoricalDtype: сортировка категорий и строк
- Pandas CategoricalDtype: сортировка категорий и отчёт
- pandas CategoricalDtype: почему astype заменяет значения на NaN
- pandas Series из словаря: index, shape и dtype
