Zacznij terazZacznij za darmo

Pivot i złączenie

Możliwość rozwinięcia i przestawienia (pivot) złożonego pola to świetna rzecz, ale w rezultacie otrzymujesz ramkę danych zawierającą tylko przestawione wartości. Żeby naprawdę wykorzystać jej potencjał, musisz połączyć ją z oryginalnym zbiorem danych! Po złączeniu zbiorów wiele nowo utworzonych kolumn będzie miało wartości NULL – jednak znając kontekst ich powstania, możemy je bezpiecznie zastąpić zerami: dana cecha albo istnieje, albo nie.

To ćwiczenie jest częścią kursu

Inżynieria cech z PySpark

Zobacz kurs

Instrukcje do ćwiczenia

  • Przestaw (pivot) wartości ex_garage_list, grupując po identyfikatorze rekordu NO za pomocą groupBy() – użyj dostarczonego kodu, aby zagregować constant_val, pomijając wartości null i przyjmując pierwszą wartość.
  • Wykonaj lewe złączenie piv_df z df, używając NO jako warunku złączenia.
  • Utwórz listę kolumn zfill_cols do wypełnienia zerami, korzystając z atrybutu columns na piv_df.
  • Wypełnij zerami kolumny przestawionej ramki danych, zfill_cols, używając fillna() z parametrem subset.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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=____)
Edytuj i uruchom kod