Obtener Dummies en Pandas
-
Método
pandas.get_dummies()
-
Crear un DataFrame con columnas de variables dummy utilizando el método
pandas.get_dummies()
-
Configurar
columnas
para crear variables ficticias sólo para las columnas especificadas -
Establezca
prefix
para cambiar el nombre por defecto de las columnas ficticias
Este tutorial explica cómo podemos generar DataFrame con variables dummy o indicadoras a partir de DataFrame con columnas categóricas.
Método pandas.get_dummies()
pandas.get_dummies(
data,
prefix=None,
prefix_sep="_",
dummy_na=False,
columns=None,
sparse=False,
drop_first=False,
dtype=None,
)
Crear un DataFrame con columnas de variables dummy utilizando el método pandas.get_dummies()
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)
Producción :
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
Genera un DataFrame con nombres de columnas ficticias formado por la concatenación del nombre de la columna original y cada valor único de la columna.
Para la columna Name
, tenemos cinco valores únicos, y por lo tanto el Name
se divide en Name_
más cada nombre único en el DataFrame. Los valores de las columnas ficticias serán 1 o 0 según el valor del DataFrame inicial.
La fila con el valor de la columna Name
Daniel
en el DataFrame students_df
tendrá el valor 1 para la columna Name_Daniel
en el DataFrame students_df_dummies
mientras que todos los demás valores de nombres tendrán el valor 0 para la columna Name_Daniel
en el DataFrame students_df_dummies
.
Configurar columnas
para crear variables ficticias sólo para las columnas especificadas
Por defecto, el método get_dummies()
creará un DataFrame con columnas ficticias para cada columna con los tipos de datos object
o category
. Podemos pasar la lista de las columnas como argumento columns
para especificar columnas concretas.
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)
Producción :
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
Crea variables ficticias sólo para la columna Sex
.
Establezca prefix
para cambiar el nombre por defecto de las columnas ficticias
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)
Producción :
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
Establece el prefijo para las columnas ficticias generadas a partir de la columna Sex
a Column
. Ahora los nombres de las columnas ficticias se convierten en Column_Female
y Column_Male
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArtículo relacionado - Pandas DataFrame Column
- Cómo obtener las cabeceras de columna de Pandas DataFrame como una lista
- Cómo borrar la columna de Pandas DataFrame
- Cómo convertir la columna del DataFrame a Datetime en Pandas
- Cómo obtener la suma de la columna de Pandas
- Cómo cambiar el orden de las columnas Pandas DataFrame
- Cómo convertir la columna del DataFrame en cadena en los pandas