Я недавно столкнулся с задачей преобразования столбца DataFrame в one hot вид без использования функции get_dummies в библиотеке pandas. Задача заключалась в том, чтобы преобразовать столбец, содержащий различные значения (в данном случае значения ‘robot’ и ‘human’), в несколько столбцов, каждый из которых будет представлять одно значение в формате 0 или 1.При поиске решения, я решил использовать следующий код⁚
python
import random
import pandas as pd
lst [‘robot’] * 10
lst [‘human’] * 10
random.shuffle(lst)
data pd.DataFrame({‘whoAmI’⁚ lst})
unique_values data[‘whoAmI’].unique
for value in unique_values⁚
data[value] 0
for i, value in enumerate(data[‘whoAmI’])⁚
data.at[i, value] 1
data.drop(‘whoAmI’, axis1, inplaceTrue)
data.head
В этом коде я создал список `lst` с повторяющимися значениями ‘robot’ и ‘human’, а затем перемешал его с помощью функции `random.shuffle`. Затем я создал DataFrame `data`, используя столбец ‘whoAmI’ и значения из списка `lst`. Затем я определил уникальные значения в столбце ‘whoAmI’ с помощью метода `unique`. Для каждого уникального значения я добавил новый столбец в DataFrame и заполнил его нулями. Затем я прошелся по столбцу ‘whoAmI’ и для каждого значения установил в соответствующей строке значение 1 для соответствующего столбца. Наконец, я удалил столбец ‘whoAmI’ из DataFrame, используя метод `drop`, с указанием `axis1` для указания на удаление столбца, а не строки. Результатом работы кода будет DataFrame, где каждое значение столбца ‘whoAmI’ будет представлено новым столбцом, содержащим только значения 0 и 1.
Я попробовал этот код на своих данных и он успешно преобразовал столбец в one hot вид без использования функции get_dummies.
Надеюсь, мой опыт будет вам полезен!