Pivots & joinen
Een samengesteld veld kunnen exploderen en pivots maken is top, maar dan houd je een dataframe over met alleen die gepivotte waarden. Om er echt iets aan te hebben, moet je het opnieuw joinen met de oorspronkelijke gegevensset! Na het joinen krijgen we veel NULL-waarden in de nieuw gemaakte kolommen. Omdat we weten hoe ze zijn ontstaan, kunnen we die veilig met nul opvullen: het nieuwe item heeft het kenmerk of niet.
Deze oefening maakt deel uit van de cursus
Feature Engineering met PySpark
Oefeninstructies
- Pivot de waarden van
ex_garage_listdoor te groeperen op record-idNOmetgroupBy(). Gebruik de gegeven code omconstant_valte aggregeren, zodat nulls worden genegeerd en de eerste waarde wordt genomen. - Voer een left join uit van
piv_dfopdfmetNOals joinvoorwaarde. - Maak de lijst met kolommen,
zfill_cols, die je met nullen wilt opvullen, door de eigenschapcolumnsoppiv_dfte gebruiken. - Vul de kolommen van het gepivotte dataframe,
zfill_cols, met nullen doorfillna()te gebruiken met eensubset.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
from pyspark.sql.functions import coalesce, first
# Pivot
piv_df = ex_df.____(____).____(____).agg(coalesce(first(____)))
# Join the dataframes together and fill null
joined_df = ____.join(____, on='NO', how=____)
# Columns to zero fill
zfill_cols = ____.____
# Zero fill the pivoted values
zfilled_df = joined_df.____(0, subset=____)