Kom igångKom igång gratis

Skala dina skalare

I den föregående övningen skalade vi en enskild variabel med min-max-skalning. Om du har många variabler att skala vill du inte skriva hundratals kodrader för var och en. Låt oss bygga vidare på den föregående övningen och göra det till en funktion.

Den här övningen är en del av kursen

Feature Engineering med PySpark

Visa kurs

Övningsinstruktioner

  • Definiera en funktion som heter min_max_scaler och som tar parametrarna df (en dataframe) och cols_to_scale (listan med kolumner att skala).
  • Använd en for-loop för att iterera genom varje kolumn i listan och tillämpa min-max-skalning.
  • Returnera dataframen df med de nya kolumnerna tillagda.
  • Tillämpa funktionen min_max_scaler()df och kolumnlistan cols_to_scale.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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()
Redigera och kör kod