Filtrer des champs numériques selon des conditions
Encore une fois, comprendre le contexte de vos données est essentiel. Nous voulons estimer la plage « normale » des prix de vente des maisons. Assurons-nous d’exclure les biens atypiques qui se sont vendus nettement plus ou nettement moins que la moyenne. Ici, nous allons calculer la moyenne et l’écart-type, puis les utiliser pour filtrer le champ quasi normal log_SalesClosePrice.
Cet exercice fait partie du cours
<cours>Feature Engineering avec PySpark</cours>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 utilisant à la foislow_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[____] > ____))