开始使用免费开始使用

让缩放器真正"扩展"起来

在上一个练习中,您对单个变量做了 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()
编辑并运行代码