Pivotera och sammanfoga
Att kunna expandera och pivotera ett sammansatt fält är användbart, men resultatet är en dataram som bara innehåller de pivoterade värdena. För att det ska bli riktigt värdefullt behöver du sammanfoga det med den ursprungliga datamängden! Efter sammanfogningen kommer många av de nya kolumnerna att innehålla NULL-värden – men eftersom vi känner till hur de skapades kan vi tryggt fylla dem med noll, eftersom ett nytt värde antingen har ett attribut eller inte.
Den här övningen är en del av kursen
Feature Engineering med PySpark
Övningsinstruktioner
- Pivotera värdena i
ex_garage_listgenom att gruppera på post-id:tNOmedgroupBy(). Använd den angivna koden för att aggregeraconstant_valså att null-värden ignoreras och det första värdet väljs. - Gör en vänstersammanfogning av
piv_dfmeddfoch användNOsom sammanfogningsvillkor. - Skapa listan med kolumner,
zfill_cols, som ska fyllas med nollor genom att använda attributetcolumnspåpiv_df. - Fyll de pivoterade kolumnerna,
zfill_cols, med nollor genom att användafillna()med ensubset.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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=____)