Codificación ordinal de un DataFrame
Las variables categóricas se pueden codificar con dos técnicas: one-hot encoding y codificación ordinal. En el one-hot encoding, cada categoría se convierte en una columna y, para cada fila, la columna de su categoría vale 1 y las demás 0. En la codificación ordinal, las categorías se mapean a valores enteros que van desde 0 hasta el número de categorías.
En este ejercicio, iterarás por todas las columnas del DataFrame users para codificar ordinalmente sus categorías. También guardarás un codificador para cada columna en un diccionario ordinal_enc_dict para que las columnas codificadas puedan volver a convertirse a sus categorías originales.
Este ejercicio forma parte del curso
Cómo tratar datos faltantes en Python
Instrucciones del ejercicio
- Define un diccionario vacío
ordinal_enc_dict. - Crea un objeto Ordinal Encoder para cada columna.
- Selecciona los valores no nulos de la columna en users y codifícalos.
- Asigna de nuevo los valores codificados a los valores no nulos de cada columna (
col_name) en users.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# Create an empty dictionary ordinal_enc_dict
ordinal_enc_dict = ___
for col_name in users:
# Create Ordinal encoder for col
ordinal_enc_dict[col_name] = ___
col = users[col_name]
# Select non-null values of col
col_not_null = ___
reshaped_vals = col_not_null.values.reshape(-1, 1)
encoded_vals = ordinal_enc_dict[col_name].fit_transform(reshaped_vals)
# Select the non-null values for the column col_name in users and store the encoded values
users.loc[___, ___] = np.squeeze(encoded_vals)