Функция get_dummies
Функция get_dummies применяется к DataFrame
или Series и преобразует категориальные столбцы
в набор бинарных фиктивных переменных.
Основным параметром является data - входные данные.
Параметр columns позволяет указать конкретные столбцы
для преобразования.
Параметр prefix добавляет префикс к именам новых столбцов.
Параметр drop_first удаляет первый уровень категории
для избежания мультиколлинеарности.
Параметр dtype задаёт тип данных для создаваемых столбцов
(по умолчанию uint8).
Синтаксис
pd.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False,
columns=None, sparse=False, drop_first=False,
dtype=None)
Пример
Давайте преобразуем категориальный столбец в фиктивные переменные:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': ['x', 'y', 'x', 'z', 'y']
})
res = pd.get_dummies(df, columns=['b'])
print(res)
Результат выполнения кода:
a b_x b_y b_z
0 1 1 0 0
1 2 0 1 0
2 3 1 0 0
3 4 0 0 1
4 5 0 1 0
Пример
Используем параметр drop_first для удаления первой категории:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': ['x', 'y', 'x', 'z', 'y']
})
res = pd.get_dummies(df, columns=['b'], drop_first=True)
print(res)
Результат выполнения кода:
a b_y b_z
0 1 0 0
1 2 1 0
2 3 0 0
3 4 0 1
4 5 1 0
Пример
Применим функцию к отдельной Series без указания столбцов:
import pandas as pd
ser = pd.Series(['a', 'b', 'a', 'c', 'b'])
res = pd.get_dummies(ser)
print(res)
Результат выполнения кода:
a b c
0 1 0 0
1 0 1 0
2 1 0 0
3 0 0 1
4 0 1 0
Пример
Добавим префиксы к именам новых столбцов с помощью prefix:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3],
'b': ['x', 'y', 'z']
})
res = pd.get_dummies(df, columns=['b'], prefix='cat')
print(res)
Результат выполнения кода:
a cat_x cat_y cat_z
0 1 1 0 0
1 2 0 1 0
2 3 0 0 1