EmpezarEmpieza gratis

Escalando tus escaladores

En el ejercicio anterior, aplicamos min-max scaling a una sola variable. Supón que tienes MUCHAS variables que escalar; no querrás cientos de líneas de código para cada una. Vamos a ampliar el ejercicio anterior y convertirlo en una función.

Este ejercicio forma parte del curso

Ingeniería de características con PySpark

Ver curso

Instrucciones del ejercicio

  • Define una función llamada min_max_scaler que reciba como parámetros df, un dataframe, y cols_to_scale, la lista de columnas que quieres escalar.
  • Usa un bucle for para iterar por cada columna de la lista y aplicarles min-max scaling.
  • Devuelve el dataframe df con las nuevas columnas añadidas.
  • Aplica la función min_max_scaler() sobre df y la lista de columnas cols_to_scale.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

def ____(____, ____):
  # Takes a dataframe and list of columns to minmax scale. Returns a dataframe.
  for col in ____:
    # Define min and max values and collect them
    max_days = df.agg({col: 'max'}).collect()[0][0]
    min_days = df.agg({____: 'min'}).collect()[0][0]
    new_column_name = 'scaled_' + col
    # Create a new column based off the scaled data
    df = df.withColumn(____, 
                      (df[____] - min_days) / (max_days - min_days))
  return ____
  
df = min_max_scaler(____, ____)
# Show that our data is now between 0 and 1
df[['DAYSONMARKET', 'scaled_DAYSONMARKET']].show()
Editar y ejecutar código