Як використовувати pandas get dummies – pd.get_dummies


Часто в статистиці набори даних, з якими ми працюємо, включають категоріальні змінні .

Це змінні, які приймають імена або мітки. Приклади:

  • Сімейний стан («одружений», «неодружений», «розлучений»)
  • Статус куріння («курить», «не курить»)
  • Колір очей («блакитний», «зелений», «горіховий»)
  • Рівень освіти (наприклад, «середня школа», «ступінь бакалавра», «ступінь магістра»)

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

Наприклад, припустімо, що у нас є набір даних, що містить категоріальну змінну Стать . Щоб використовувати цю змінну як предиктор у регресійній моделі, її спочатку необхідно перетворити на фіктивну змінну.

Щоб створити цю фіктивну змінну, ми можемо вибрати одне зі значень (“Чоловічий”), щоб представляти 0, а інше значення (“Жіночий”) представляти 1:

Як створити фіктивні змінні в Pandas

Щоб створити манекени для змінної в pandas DataFrame, ми можемо використати функцію pandas.get_dummies() , яка використовує такий базовий синтаксис:

pandas.get_dummies(data, prefix=None, columns=None, drop_first=False)

золото:

  • data : ім’я pandas DataFrame
  • prefix : рядок, який потрібно додати до початку нового стовпця фіктивної змінної
  • columns : назва стовпців, які потрібно перетворити на фіктивну змінну
  • drop_first : видаляти чи ні перший стовпець фіктивної змінної

Наступні приклади показують, як використовувати цю функцію на практиці.

Приклад 1: Створення однієї фіктивної змінної

Припустімо, що у нас є наступні pandas DataFrame:

 import pandas as pd

#createDataFrame
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
p.d. 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

#createDataFrame
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
p.d. 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 означає «Так» коледжу

Додаткові ресурси

Як використовувати фіктивні змінні в регресійному аналізі
Що таке пастка фіктивної змінної?

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *