Вот небольшой фрейм данных, который содержит очень маленький фрагмент данных, который мне нужно закодировать. DataFrame для кодирования
Мои текущие попытки сделать это - использовать 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 образцов.
Я также не уверен, следует ли разделять цели запятыми или нет, я всегда могу это изменить, но моя конечная цель - получить новый фрейм данных с закодированными метками вместо категориальных меток.
Кроме того, поскольку кодировщик возвращает один массив, если бы я делал то же самое для каждой строки, каждая с другое количество меток (т.е. (собаки, животные) вместо (локальные)), мне нужно было бы добавить каждый массив, чтобы создать матрицу, но это тоже то, что я понятия не имею, как мне делать. Большое спасибо за помощь!