EmpezarEmpieza gratis

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

Ver curso

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)
Editar y ejecutar código