Вот небольшой фрейм данных, который содержит очень небольшой фрагмент данных, которые мне нужно закодировать. Кадр данных для кодирования
В настоящее время я пытаюсь сделать это с помощью SciKit-Learns LabelEncoder(),
le = preprocessing.LabelEncoder()
le.fit(["local", "animals", "local", "diet", "food", "health", "local", "police brutality", "police", "kids", "dogs"])
list(le.classes_)
(output)
['animals',
'diet',
'dogs',
'food',
'health',
'kids',
'local',
'police',
'police brutality']
Теперь я добавил все нужные цели в кодировщик, так что теперь мне нужно начать кодирование. Проблема в том, что LabelEncoder принимает такие аргументы.
le.transform(["local"]) #For the first row in the data frame
(output) array([6])
Теперь это правильная кодировка для первой строки, но как мне сделать это для каждой второй строки? Я не думаю, что написать это вручную очень выполнимо, поскольку мой фактический набор данных составляет около 6000 образцов.
Я также не уверен, должны ли цели быть разделены запятыми или нет, я всегда могу это изменить, но моя конечная цель - получить новый фрейм данных с закодированными метками вместо меток категорий.
Кроме того, поскольку кодировщик возвращает один массив, если бы я делал одно и то же для каждой строки, каждая с разным количеством меток (т.е. (собаки, животные) вместо (локальные)), мне нужно было бы добавить каждый массив сделать матрицу, но я понятия не имею, как это сделать. Большое спасибо за помощь!