Records verwijderen met tekstfilters
Het is de moeite waard om je klanten veel vragen te stellen en de tijd te nemen om je variabelen te begrijpen. Je komt erachter dat een 'assumable mortgage' ongebruikelijk is in de vastgoedsector en je klant stelt voor om ze uit te sluiten. In deze oefening gebruiken we isin(), dat lijkt op like() maar waarmee je een lijst met waarden kunt doorgeven als filter in plaats van slechts één waarde.
Deze oefening maakt deel uit van de cursus
Feature Engineering met PySpark
Oefeninstructies
- Gebruik
select()enshow()om de unieke waarden in de kolom 'ASSUMABLEMORTGAGE' te bekijken en maak de lijstyes_valuesvoor alle waarden die de string 'Yes' bevatten. - Gebruik
~df['ASSUMABLEMORTGAGE'],isin()en.isNull()om een NIET-filter te maken dat records verwijdert met overeenkomstige waarden in de lijstyes_valuesen records met null-waarden behoudt. Sla dit filter op in de variabeletext_filter. - Gebruik
where()om detext_filtertoe te passen opdf. - Print het aantal overgebleven records in
df.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# Inspect unique values in the column 'ASSUMABLEMORTGAGE'
df.____([____]).distinct().____()
# List of possible values containing 'yes'
yes_values = [____, ____]
# Filter the text values out of df but keep null values
text_filter = ~df['ASSUMABLEMORTGAGE'].isin(____) | df['ASSUMABLEMORTGAGE'].isNull()
df = df.____(text_filter)
# Print count of remaining records
print(____.____())