Wyodrębnianie tekstu do nowych cech
Garaże są ważnym kryterium przy wyborze domu w Minnesocie – większość mieszkańców posiada samochód, a odśnieżanie auta parkującego na zewnątrz to prawdziwa uciążliwość. Istotne jest też to, czy garaż jest połączony z domem, co pozwala uniknąć wychodzenia na mróz. Stwórzmy cechę has_attached_garage, która będzie określać, czy garaż jest dobudowany do domu, czy nie.
To ćwiczenie jest częścią kursu
Inżynieria cech z PySpark
Instrukcje do ćwiczenia
- Zaimportuj potrzebną funkcję
when()zpyspark.sql.functions. - Utwórz warunek dopasowania ciągu znaków za pomocą
like(), aby wyszukać wzorzecAttached Garagew kolumniedf['GARAGEDESCRIPTION']– użyj symbolu wieloznacznego%, tak aby dopasowanie mogło wystąpić w dowolnym miejscu w polu. - Analogicznie utwórz kolejny warunek za pomocą
like(), aby wyszukać wzorzecDetached Garagew kolumniedf['GARAGEDESCRIPTION']– również z symbolem wieloznacznym%. - Utwórz nową kolumnę
has_attached_garage, używającwhen(), aby przypisać wartość 1, gdy garaż jest dobudowany do domu, 0 gdy jest wolnostojący, oraz użyjotherwise(), aby przypisać wartość null za pomocąNonew pozostałych przypadkach.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Import needed functions
____ ____ ____ ____
# Create boolean conditions for string matches
has_attached_garage = df[____].____(____)
has_detached_garage = df[____].____(____)
# Conditional value assignment
df = df.withColumn(____, (____(____, 1)
.____(____, 0)
.____(____)))
# Inspect results
df[['GARAGEDESCRIPTION', 'has_attached_garage']].show(truncate=100)