Перейти до основного контенту

Pd.get_dummies в pandas: як це працює

3 хв читання
1018 переглядів

Модуль pandas в Python надає широкий спектр інструментів для роботи з даними. Одним з таких інструментів є функція `pd.get_dummies`)', яка дозволяє перетворити категоріальні змінні в Числові.

У реальному світі дані часто містять категоріальні змінні, які не можуть бути безпосередньо використані алгоритмами машинного навчання. Але за допомогою функції ' pd.get_dummies () ' можна перетворити ці змінні в Числові, що є необхідним для багатьох алгоритмів.

Як це працює? Функція ' pd.get_dummies () ' створює нові стовпці у вихідному наборі даних для кожного унікального значення категоріальної змінної. Потім для кожного рядка в вихідних даних встановлюється значення 1 у відповідному новому стовпці, якщо значення категоріальної змінної збігається. Якщо значення категоріальної змінної не збігається, то встановлюється значення 0.

Користь від використання функції ' pd.get_dummies () ' полягає в тому, що вона дозволяє працювати з категоріальними змінними без необхідності ручного кодування. Це зручно і економить час при проведенні аналізу даних і побудові моделей машинного навчання.

Що таке pd.get_dummies в pandas?

One-hot encoding-це процес, при якому кожне значення категоріального ознаки замінюється новим бінарним ознакою. Нова ознака буде дорівнює 1, якщо вихідний ознака приймає дане значення, і 0 в іншому випадку. Таким чином, one-hot encoding дозволяє використовувати категоріальні дані в алгоритмах машинного навчання, які вимагають числових входів.

pd.get_dummies приймає DataFrame або стовпець серії як вхідні дані і повертає новий DataFrame з двійковими ознаками. Вона автоматично визначає категоріальні ознаки, виходячи з їх типу даних, і застосовує one-hot encoding тільки до них.

При використанні pd.get_dummies слід враховувати, що вона може привести до збільшення розмірності даних, оскільки кожне значення категоріального ознаки замінюється на новий бінарний ознака. Це може бути небажано, якщо в даних присутні ознаки з великою кількістю унікальних значень.

Незважаючи на це, pd.get_dummies є зручним інструментом для обробки категоріальних даних в pandas, який може бути корисний в різних завданнях аналізу даних і машинного навчання.

Оригінальний стовпецьНовий стовпець_значення1Новий стовпець_значення2Новий стовпець_значення3
значення1100
значення2010
значення3001

Принцип роботи функції pd.get_dummies у бібліотеці pandas

Коли ми застосовуємо функцію pd.get_dummies до стовпця з категоріальними значеннями, вона розділяє кожну унікальну категорію на окремий стовпець і присвоює йому значення 1, якщо воно відповідає даній категорії, і 0 в іншому випадку. Таким чином, кожен рядок у вихідному стовпці перетворюється на набір бінарних значень.

Для прикладу, розглянемо стовпець 'Color', в якому містяться значення:' Red',' Green','Blue'. Якщо ми застосуємо функцію pd.get_dummies до цього стовпця, ми отримаємо три нові стовпці: 'Color_Red', 'Color_Green', 'Color_Blue'. Якщо значення ' Color 'у вихідній таблиці дорівнює' Red', то в стовпці' Color_Red 'буде значення 1, а в стовпцях' Color_Green 'і' Color_Blue ' буде значення 0 і навпаки.

ColorColor_RedColor_GreenColor_Blue
Red100
Green010
Blue001

Таким чином, функція pd.get_dummies дозволяє перетворити категоріальні дані в вид, який може бути використаний для навчання алгоритмів машинного навчання. Вона спрощує роботу з категоріальними змінними і дозволяє використовувати їх в якості вхідних даних для моделей машинного навчання.

Як використовувати pd.get_dummies в pandas для створення фіктивних змінних?

Метод pd.get_dummies () у бібліотеці pandas дозволяє перетворити категоріальні змінні у фіктивні змінні. Фіктивна змінна, або» даммі-змінна", являє собою змінну, яка приймає значення 1, якщо елемент належить певній категорії, і 0 в іншому випадку. Перетворення категоріальних змінних у фіктивні змінні необхідне для роботи з алгоритмами машинного навчання та статистичними моделями, які не можуть працювати з текстовими даними.

Процес створення фіктивних змінних за допомогою pd.get_dummies () в pandas дуже простий. Вам просто потрібно передати стовпець або список стовпців із категоріальними змінними як аргумент функції, і вона поверне новий DataFrame із фіктивними змінними.

import pandas as pd
data = 'Розмір': ['Маленький', 'Середній', 'Великий',' Великий','Маленький'],
'Ціна': [10, 15, 20, 25, 30]>
df = pd.DataFrame(data)
dummies = pd.get_dummies(df['Колір'])
df_with_dummies = pd.concat([df, dummies], axis=1)

У цьому прикладі ми маємо вихідні дані, що містять стовпець "колір" із категоріальними змінними. Ми використовуємо pd.get_dummies (), щоб перетворити цей стовпець у фіктивні змінні та зберегти результат у Новий dataframe dummies . Потім ми поєднуємо оригінальний DataFrame з новим DataFrame фіктивних змінних за допомогою методу pd.concat() .

Результат буде виглядати наступним чином:

КолірРозмірЦінаЧервонийЗеленийСиній
0ЧервонийМалий10100
1ЗеленийСередній15010
2СинійВеликий20001
3ЗеленийВеликий25010
4ЧервонийМалий30100

Тепер у нас є стовпці "червоний", "зелений" та "Синій", які є фіктивними змінними, що представляють значення з оригінального стовпця "Колір". Рядки, що відповідають значенням "Червоний", мають значення 1 у стовпці" червоний " та 0 у решті стовпців фіктивних змінних. Аналогічно для значень "зелений"і " синій".

Тепер ви можете використовувати цей новий DataFrame з фіктивними змінними для подальшого аналізу або моделювання даних. pd.get_dummies () - потужний інструмент для роботи з категоріальними змінними в pandas, який спрощує процес створення фіктивних змінних і робить їх легко інтерпретованими для алгоритмів машинного навчання.

Переваги використання pd.get_dummies в pandas

1. Простота використання: pd.get_dummies дуже простий у використанні і дозволяє легко перетворювати категоріальні змінні в Числові. Немає необхідності писати складні цикли або умови, досить застосувати метод до потрібного стовпця датафрейма і отримати нові числові стовпці з перетвореними значеннями.

2. Гнучкість: pd.get_dummies дозволяє задавати різні параметри для перетворення категоріальних змінних. Наприклад, можна вказати префікс для створення нових стовпців або задати стовпець-індикатор наявності пропущених значень. Це дає можливість налаштовувати перетворення під конкретні потреби проекту.

3. Додавання інформації: pd.get_dummies створює нові стовпці з числовими значеннями для кожного унікального значення категоріальної змінної. Це дозволяє зберегти всю інформацію про категорії, а не втрачати її при перетворенні.

4. Підтримка різних типів змінних: pd.get_dummies дозволяє перетворювати не тільки рядки, але й цілі значення або навіть часові ряди. Це робить метод корисним для роботи з різними типами даних.

5. Зручність спільного використання з іншими інструментами: pd.get_dummies добре інтегрується з іншими інструментами та методами бібліотеки pandas. Наприклад, даний метод можна легко комбінувати з методами для попередньої обробки даних або поділу датасета на навчальну і тестову вибірки.

Використання pd.get_dummies в pandas дозволяє ефективно працювати з категоріальними даними і готувати їх для навчання моделей машинного навчання. Цей метод значно спрощує процес перетворення категоріальних змінних в Числові і дозволяє зберегти всю інформацію про категорії, що дуже важливо для отримання точних моделей.

Обмеження та особливості pd.get_dummies в pandas

Необхідно враховувати деякі обмеження та особливості функції pd.get_dummies () при роботі з даними в pandas. Розглянемо їх детальніше:

1. Пропущені значення

Функція pd.get_dummies () не працює з відсутніми значеннями у вихідних даних. Якщо в початковому датасете присутні пропущені значення, необхідно попередньо обробити їх, заповнивши або видаливши.

2. Стовпці категорій і стовпці з пропущеними значеннями

При використанні функції pd.get_dummies () створюються нові стовпці для кожної категорії з вихідного стовпця. Якщо в вихідних даних є стовпці з пропущеними значеннями, то створюються відповідні нові стовпці для кожної категорії, а також стовпець для пропущених значень.

3. Створення бінарних змінних

Функція pd.get_dummies () створює двійкові змінні, тобто нові стовпці міститимуть лише значення 0 або 1. За замовчуванням перша категорія проходить через dummy coding. Якщо потрібно уникнути цього, необхідно використовувати параметр drop_first=True.

4. Кодування декількох стовпців

Функція pd.get_dummies () дозволяє кодувати не лише один стовпець, але й кілька стовпців одночасно. У цьому випадку нові стовпці будуть створені для кожного унікального значення у всіх переданих стовпцях.

5. Перейменування стовпців

За замовчуванням стовпці, створені функцією pd.get_dummies (), мають імена виду «названіе_ісходного_столбца_значеніе_категорії». Якщо потрібно перейменувати стовпці, можна скористатися параметром prefix.

Враховуючи всі ці особливості, функція pd.get_dummies () є потужним інструментом для роботи з категоріальними даними в pandas, дозволяючи легко і ефективно створювати нові уявлення даних і включати їх в аналіз.