Как использовать Pandas Get Dummies — pd.get_dummies

Как использовать Pandas Get Dummies — pd.get_dummies

Часто в статистике наборы данных, с которыми мы работаем, включают категориальные переменные .

Это переменные, которые принимают имена или метки. Примеры включают:

  • Семейное положение («замужем», «холост», «разведен»).
  • Статус курения («курящий», «некурящий»)
  • Цвет глаз («голубой», «зеленый», «ореховый»)
  • Уровень образования (например, «средняя школа», «бакалавр», «магистр»)

При подборе алгоритмов машинного обучения (таких как линейная регрессия , логистическая регрессия , случайные леса и т. д.) мы часто преобразовываем категориальные переменные в фиктивные переменные , которые представляют собой числовые переменные, используемые для представления категориальных данных.

Например, предположим, что у нас есть набор данных, содержащий категориальную переменную Gender.Чтобы использовать эту переменную в качестве предиктора в регрессионной модели, нам сначала нужно преобразовать ее в фиктивную переменную.

Чтобы создать эту фиктивную переменную, мы можем выбрать одно из значений («Мужской») для представления 0, а другое значение («Женский») для представления 1:

Как создать фиктивные переменные в Pandas

Чтобы создать фиктивные переменные для переменной в кадре данных pandas, мы можем использовать функцию pandas.get_dummies() , которая использует следующий базовый синтаксис:

pandas.get_dummies (данные, префикс = нет, столбцы = нет, drop_first = ложь)

куда:

  • data : имя Pandas DataFrame
  • prefix : строка, которая добавляется в начало нового столбца фиктивной переменной.
  • columns : Имя столбца (столбцов) для преобразования в фиктивную переменную.
  • drop_first : Отбрасывать или нет первый столбец фиктивной переменной.

В следующих примерах показано, как использовать эту функцию на практике.

Пример 1. Создание одной фиктивной переменной

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'income': [45, 48, 54, 57, 65, 69, 78],
 'age': [23, 25, 24, 29, 38, 36, 40],
 'gender': ['M', 'F', 'M', 'F', 'F', 'F', 'M']})

#view DataFrame
df

 income age gender
0 45 23 M
1 48 25 F
2 54 24 M
3 57 29 F
4 65 38 F
5 69 36 F
6 78 40 M

Мы можем использовать функцию pd.get_dummies() , чтобы превратить пол в фиктивную переменную:

#convert gender to dummy variable
pd.get_dummies (df, columns=['gender'], drop_first= True )

 income age gender_M
0 45 23 1
1 48 25 0
2 54 24 1
3 57 29 0
4 65 38 0
5 69 36 0
6 78 40 1

Половая колонка теперь является фиктивной переменной, где:

  • Значение 0 представляет «женщину».
  • Значение 1 представляет «Мужской».

Пример 2. Создание нескольких фиктивных переменных

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'income': [45, 48, 54, 57, 65, 69, 78],
 'age': [23, 25, 24, 29, 38, 36, 40],
 'gender': ['M', 'F', 'M', 'F', 'F', 'F', 'M'],
 'college': ['Y', 'N', 'N', 'N', 'Y', 'Y', 'Y']})

#view DataFrame
df

 income age gender college
0 45 23 M Y
1 48 25 F N
2 54 24 M N
3 57 29 F N
4 65 38 F Y
5 69 36 F Y
6 78 40 M Y

Мы можем использовать функцию pd.get_dummies() для преобразования пола и колледжа в фиктивные переменные:

#convert gender to dummy variable
pd.get_dummies (df, columns=['gender', 'college'], drop_first= True )


 income age gender_M college_Y
0 45 23 1 1
1 48 25 0 0
2 54 24 1 0
3 57 29 0 0
4 65 38 0 1
5 69 36 0 1
6 78 40 1 1

Половая колонка теперь является фиктивной переменной, где:

  • Значение 0 представляет «женщину».
  • Значение 1 представляет «Мужской».

А столбец колледжа теперь является фиктивной переменной, где:

  • Значение 0 представляет колледж «Нет».
  • Значение 1 представляет колледж «Да».

Дополнительные ресурсы

Как использовать фиктивные переменные в регрессионном анализе
Что такое ловушка с фиктивной переменной?

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.