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
Övningsinstruktioner
- Definiera en funktion som heter
min_max_scaleroch som tar parametrarnadf(en dataframe) ochcols_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
dfmed de nya kolumnerna tillagda. - Tillämpa funktionen
min_max_scaler()pådfoch kolumnlistancols_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()