ПочатиПочніть безкоштовно

Масштабуємо ваші скейлери

У попередній вправі ми виконали min-max масштабування однієї змінної. Припустімо, що у вас БАГАТО змінних для масштабування — ви не хочете писати сотні рядків коду для кожної. Розширімо попередню вправу й перетворімо її на функцію.

Ця вправа є частиною курсу

Опрацювання ознак у PySpark

Переглянути курс

Інструкції до вправи

  • Створіть функцію min_max_scaler, яка приймає параметри: df — датафрейм, і cols_to_scale — список стовпців для масштабування.
  • Використайте цикл for, щоб пройтися кожним стовпцем зі списку та виконати min-max масштабування.
  • Поверніть датафрейм df з доданими новими стовпцями.
  • Застосуйте функцію min_max_scaler() до df і списку стовпців cols_to_scale.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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()
Редагувати та запускати код