У меня есть фрейм данных с этим типом данных (слишком много столбцов):
col1 int64
col2 int64
col3 category
col4 category
col5 category
Столбцы выглядят так:
Name: col3, dtype: category
Categories (8, object): [B, C, E, G, H, N, S, W]
Я хочу преобразовать все значения в столбцах в целые числа следующим образом:
[1, 2, 3, 4, 5, 6, 7, 8]
Я решил это для одного столбца следующим образом:
dataframe['c'] = pandas.Categorical.from_array(dataframe.col3).codes
Теперь у меня есть две колонки в моей dataframe - старые col3
и новые , c
и нужно отказаться от старых колонок.
Это плохая практика. Это работает, но в моем фреймворке много столбцов, и я не хочу делать это вручную.
Как вообще этот питоник и просто хитро?
df['col2'].cat.categories
например.NaN
уникальная карта для-1
cat.codes
НЕ могут быть теми, которые вы видите в серии!Это работает для меня:
Вывод:
источник
Если вы беспокоились только о том, что вы создаете дополнительный столбец и удаляете его позже, просто сначала используйте новый столбец.
Вы сделали. Теперь, когда
Categorical.from_array
устарело, используйтеCategorical
напрямуюЕсли вам также требуется обратное сопоставление от индекса к метке, есть еще лучший способ для того же
проверьте ниже
источник
Здесь необходимо преобразовать несколько столбцов. Итак, я использовал один подход ...
Это преобразует все столбцы строкового / объектного типа в категориальные. Затем применяет коды к каждому типу категории.
источник
Для преобразования категориальных данных в столбце C данных набора данных нам необходимо сделать следующее:
источник
То, что я делаю, я
replace
ценю.Как это-
Таким образом, если
col
столбец имеет категориальные значения, они заменяются числовыми значениями.источник
@ Quickbeam2k1, см. Ниже -
Использование sklearn
источник
fit_transform
теперь вы используете вместоtransform_fit
определения labelencoder и исправили. Почему вы используетеiloc[:,:]
? это бесполезно. В чем причина изображения? Если вы хотите доказать мне и @theGtknerd, вы потерпели неудачу.Для определенного столбца, если вас не волнует порядок, используйте этот
Если вас интересует порядок, укажите их в виде списка и используйте этот
источник