Filtrer des champs numériques selon des conditions
Encore une fois, comprendre le contexte de vos données est essentiel. Nous voulons cerner la plage « normale » des prix de vente des maisons. Assurons-nous d'exclure les valeurs aberrantes, c'est‑à‑dire les maisons vendues beaucoup plus cher ou beaucoup moins cher que la moyenne. Ici, nous allons calculer la moyenne et l'écart type, puis les utiliser pour filtrer le champ quasi normal log_SalesClosePrice.
Cette activité fait partie du cours
Ingénierie des caractéristiques avec PySpark
Instructions de l’exercice
- Importez
mean()etstddev()depuispyspark.sql.functions. - Utilisez
agg()pour calculer la moyenne et l'écart type de'log_SalesClosePrice'avec les fonctions importées. - Créez les bornes supérieure et inférieure en prenant
mean_val± 3 foisstddev_val. - Créez un filtre
where()pour'log_SalesClosePrice'en combinantlow_boundethi_bound.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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[____] > ____))