Škálování ve velkém
V předchozím cvičení jsme minmax škálovali jednu proměnnou. Co ale dělat, když máš proměnných hodně a nechceš psát stovky řádků kódu pro každou zvlášť? Rozšíříme předchozí řešení a zabalíme ho do funkce.
Toto cvičení je součástí kurzu
Feature Engineering with PySpark
Pokyny k cvičení
- Definuj funkci
min_max_scaler, která přijímá parametrydf(dataframe) acols_to_scale(seznam sloupců ke škálování). - Pomocí smyčky
foriteruj přes každý sloupec v seznamu a aplikuj na něj minmax škálování. - Vrať dataframe
dfs nově přidanými sloupci. - Zavolej funkci
min_max_scaler()nadfa seznam sloupcůcols_to_scale.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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()