Сохраняет ли использование pandas.factorize порядковый характер переменной?

#pandas #sklearn-pandas

#pandas #sklearn-pandas

Вопрос:

У меня есть набор строк в столбце, для которого я вывел числовое значение с помощью pandas.factorize. Но после преобразования я заметил, что dtype столбца равен int .

Строки в столбце являются порядковыми по своей природе, и, следовательно, числа должны представлять порядок, а не просто указываться как int . Должен ли я преобразовать числовой столбец в категорию, используя ‘as.type’, или я могу ввести столбец в свою модель машинного обучения без преобразования в категорию?

Пример: [T0, T1, T2] представляют тяжесть рака. После факторизации результат равен [0,1,2] . Но я сомневаюсь, устанавливает ли это отношение 0<1<2

Комментарии:

1. в последней версии pandas «параметр не имеет никакого эффекта и устарел»

2. Думайте, что вам повезло в этом случае… поведение по умолчанию, кажется, в алфавитном порядке ..?

3. Алфавитный и в некоторых случаях буквенно-цифровой. Однако factorize может определить порядок в обоих случаях. Я рассматривал возможность использования категориального, но некоторые столбцы имеют около 10-15 уровней. Я предположил, что факторизация, а затем преобразование в категорию были бы эффективным способом кодирования вместо указания уровней

Ответ №1:

 from pandas.api.types import CategoricalDtype
data['A'].astype(CategoricalDtype(ordered = True))
 

Это создало порядок после факторизации категориальной переменной