按条件筛选数值字段
再次强调,理解数据的业务背景非常重要。我们想要了解房屋成交价的正常范围。请确保排除任何远高于或低于平均水平的离群房屋。在此,我们将计算均值和标准差,并用它们来筛选近似正态的字段 log_SalesClosePrice。
本练习是课程的一部分
使用 PySpark 进行特征工程
练习说明
- 从
pyspark.sql.functions导入mean()和stddev()。 - 使用
agg()结合已导入的函数,计算'log_SalesClosePrice'的均值和标准差。 - 通过
mean_val+/- 3 倍的stddev_val来创建上下界。 - 为
'log_SalesClosePrice'创建一个where()过滤条件,同时使用low_bound和hi_bound。
交互式实操练习
通过完成这段示例代码来试试这个练习。
from ____ import ____, ____
# Calculate values used for outlier filtering
mean_val = df.____({____: ____}).collect()[0][0]
stddev_val = df.____({____: ____}).collect()[0][0]
# Create three standard deviation (μ ± 3σ) lower and upper bounds for data
low_bound = ____ - (3 * ____)
hi_bound = ____ + (3 * ____)
# Filter the data to fit between the lower and upper bounds
df = df.____((df[____] < ____) ____ (df[____] > ____))