Как уже упоминалось в моем комментарии, я не думаю, что вы обязательно хотите взвесить этот столбец.То, что вы хотите (я думаю), это способ для категорий быть числовыми.Это может быть выполнено в Sci-Kit Learn через горячее кодирование.В пандах это делается с помощью pd.get_dummies ().
Я покажу вам, как это работает:
df = pd.DataFrame({'nums' : [1, 4, 6, 7],
'colors': ['red', 'blue', 'green', 'yellow']})
df
Out[21]:
nums colors
1 red
4 blue
6 green
7 yellow
pd.get_dummies(df)
Out[22]:
nums colors_blue colors_green colors_red colors_yellow
1 0 0 1 0
4 1 0 0 0
6 0 1 0 0
7 0 0 0 1
Теперь для каждой категории, которая была в «цветах», мы имеемновый столбец с бинарным индикатором.Однако здесь слишком много информации.Когда вы имеете дело с предсказанием / регрессией, вам нужно беспокоиться о мультиколлинеарности, которая вызвана избыточной информацией в вашем наборе предикторов.
В этом случае мы можем сделать вывод, что цвет был синим, если вседругие показатели равны 0. Другими словами, нам не нужен столбец colors_blue для указания синевы, мы можем вывести его из информации, содержащейся в других столбцах.
По этой причине вы можете добавить аргументdrop_first=True
, как это делается ниже.
pd.get_dummies(df, drop_first=True)
Out[23]:
nums colors_green colors_red colors_yellow
1 0 1 0
4 0 0 0
6 1 0 0
7 0 0 1
Не зная вашего конкретного варианта использования, я не могу сказать вам, какой использовать.Тем не менее, я думаю, что в большинстве случаев вполне вероятно, что вы захотите удалить один из ваших категорических столбцов