Dummies in Pandas holen

Suraj Joshi 30 Januar 2023
  1. Methode pandas.get_dummies()
  2. DataFrame mit Dummy-Variablenspalten mit der Methode pandas.get_dummies() erzeugen
  3. columns so einstellen, dass Dummy-Variablen nur für angegebene Spalten erstellt werden
  4. Setze prefix, um den Standardnamen der Dummy-Spalten zu ändern
Dummies in Pandas holen

Dieses Tutorial erklärt, wie wir aus einem DataFrame mit kategorischen Spalten einen DataFrame mit Dummy- oder Indikatorvariablen erzeugen können.

Methode pandas.get_dummies()

pandas.get_dummies(
    data,
    prefix=None,
    prefix_sep="_",
    dummy_na=False,
    columns=None,
    sparse=False,
    drop_first=False,
    dtype=None,
)

DataFrame mit Dummy-Variablenspalten mit der Methode pandas.get_dummies() erzeugen

import pandas as pd

students_df = pd.DataFrame(
    {
        "Id": [302, 504, 708, 103, 303],
        "Name": ["Mike", "Christine", "Rob", "Daniel", "Jennifer"],
        "Sex": ["Male", "Female", "Male", "Male", "Female"],
    }
)

students_df_dummies = pd.get_dummies(students_df)

print("The original DataFrame is:")
print(students_df, "\n")

print("DataFrame with Dummies:")
print(students_df_dummies)

Ausgabe:

The original DataFrame is:
    Id       Name     Sex
0  302       Mike    Male
1  504  Christine  Female
2  708        Rob    Male
3  103     Daniel    Male
4  303   Jennifer  Female 

DataFrame with Dummies:
    Id  Name_Christine  Name_Daniel  Name_Jennifer  Name_Mike  Name_Rob  Sex_Female  Sex_Male
0  302               0            0              0          1         0           0         1
1  504               1            0              0          0         0           1         0
2  708               0            0              0          0         1           0         1
3  103               0            1              0          0         0           0         1
4  303               0            0              1          0         0           1         0

Es wird ein DataFrame mit Dummy-Spaltennamen erzeugt, die durch Verkettung des ursprünglichen Spaltennamens und jedes eindeutigen Wertes für die Spalte gebildet werden.

Für die Spalte “Name” haben wir fünf eindeutige Werte, daher wird der Name in Name_ plus jeden eindeutigen Namen im DataFrame aufgeteilt. Die Werte der Dummy-Spalten werden 1 oder 0 sein, basierend auf dem Wert im anfänglichen DataFrame.

Die Zeile mit dem Wert der Spalte Name Daniel im DataFrame students_df hat den Wert 1 für die Spalte Name_Daniel im DataFrame students_df_dummies, während alle anderen Namenswerte den Wert 0 für die Spalte Name_Daniel im DataFrame students_df_dummies haben.

columns so einstellen, dass Dummy-Variablen nur für angegebene Spalten erstellt werden

Standardmäßig erstellt die Methode get_dummies() einen DataFrame mit Dummy-Spalten für jede Spalte mit den D-Typen object oder category. Wir können die Liste der Spalten als Argument columns übergeben, um bestimmte Spalten zu spezifizieren.

import pandas as pd

students_df = pd.DataFrame(
    {
        "Id": [302, 504, 708, 103, 303],
        "Name": ["Mike", "Christine", "Rob", "Daniel", "Jennifer"],
        "Sex": ["Male", "Female", "Male", "Male", "Female"],
    }
)

students_df_dummies = pd.get_dummies(students_df, columns=["Sex"])

print("The original DataFrame is:")
print(students_df, "\n")

print("DataFrame with Dummies:")
print(students_df_dummies)

Ausgabe:

The original DataFrame is:
    Id       Name     Sex
0  302       Mike    Male
1  504  Christine  Female
2  708        Rob    Male
3  103     Daniel    Male
4  303   Jennifer  Female 

DataFrame with Dummies:
    Id       Name  Sex_Female  Sex_Male
0  302       Mike           0         1
1  504  Christine           1         0
2  708        Rob           0         1
3  103     Daniel           0         1
4  303   Jennifer           1         0

Es werden nur Dummy-Variablen für die Spalte Sex erzeugt.

Setze prefix, um den Standardnamen der Dummy-Spalten zu ändern

import pandas as pd

students_df = pd.DataFrame(
    {
        "Id": [302, 504, 708, 103, 303],
        "Name": ["Mike", "Christine", "Rob", "Daniel", "Jennifer"],
        "Sex": ["Male", "Female", "Male", "Male", "Female"],
    }
)

students_df_dummies = pd.get_dummies(students_df, columns=["Sex"], prefix="Column")

print("The original DataFrame is:")
print(students_df, "\n")

print("DataFrame with Dummies:")
print(students_df_dummies)

Ausgabe:

The original DataFrame is:
    Id       Name     Sex
0  302       Mike    Male
1  504  Christine  Female
2  708        Rob    Male
3  103     Daniel    Male
4  303   Jennifer  Female 

DataFrame with Dummies:
    Id       Name  Column_Female  Column_Male
0  302       Mike              0            1
1  504  Christine              1            0
2  708        Rob              0            1
3  103     Daniel              0            1
4  303   Jennifer              1            0

Setzt das Präfix für die Dummy-Spalten, die aus der Spalte Sex erzeugt werden, auf Column. Jetzt werden die Dummy-Spaltennamen zu Column_Female und Column_Male.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Verwandter Artikel - Pandas DataFrame Column