Escalando seus scalers
No exercício anterior, aplicamos Min-Max scaling a uma única variável. Suponha que você tenha MUITAS variáveis para escalar — você não vai querer centenas de linhas de código para cada uma. Vamos ampliar o exercício anterior e transformar isso em uma função.
Este exercício faz parte do curso
Feature Engineering com PySpark
Instruções do exercício
- Defina uma função chamada
min_max_scalerque receba os parâmetrosdf, um dataframe, ecols_to_scale, a lista de colunas a serem escaladas. - Use um loop
forpara iterar por cada coluna da lista e aplicar o Min-Max scaling. - Retorne o dataframe
dfcom as novas colunas adicionadas. - Aplique a função
min_max_scaler()emdfe na lista de colunascols_to_scale.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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()