Numerische Felder bedingt filtern
Auch hier ist es extrem wichtig, den Kontext deiner Daten zu verstehen. Wir wollen herausfinden, in welchem normalen Bereich Häuser verkauft werden. Stell sicher, dass wir Ausreißer ausschließen, die deutlich über oder unter dem Durchschnitt liegen. Dazu berechnen wir den Mittelwert und die Standardabweichung und nutzen sie, um das annähernd normalverteilte Feld log_SalesClosePrice zu filtern.
Diese Übung ist Teil des Kurses
<Kurs>Feature Engineering mit PySpark</Kurs>Übungsanweisungen
- Importiere
mean()undstddev()auspyspark.sql.functions. - Verwende
agg(), um den Mittelwert und die Standardabweichung für'log_SalesClosePrice'mit den importierten Funktionen zu berechnen. - Erzeuge die obere und untere Grenze, indem du
mean_val+/- 3-malstddev_valnimmst. - Erstelle einen
where()-Filter für'log_SalesClosePrice'unter Verwendung von sowohllow_boundals auchhi_bound.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
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[____] > ____))