テキストから新しい特徴量を抽出する
ミネソタの住宅では、ほとんどの人が車を所有し、屋外駐車の車に積もった雪を払うのが大変なため、ガレージは重要な要素です。ガレージの種類も大切で、寒さにさらされずに車へ行けるかどうかがポイントになります。ここでは、ガレージが家に「接続されているか」を表す特徴量 has_attached_garage を作成してみましょう。
この演習はコースの一部です
PySparkで学ぶ特徴量エンジニアリング
演習の手順
- 必要な関数
when()をpyspark.sql.functionsからインポートします。 df['GARAGEDESCRIPTION']内で文字列パターンAttached Garageを探す条件をlike()で作成します。フィールド内のどこにあってもマッチするようにワイルドカード%を使います。- 同様に、
df['GARAGEDESCRIPTION']内で文字列パターンDetached Garageを探す条件をlike()で作成し、どこでもマッチするようにワイルドカード%を使います。 - 新しい列
has_attached_garageを作成し、when()を使って「接続型」なら 1、「独立型」なら 0 を割り当て、どちらでもない場合はotherwise()でNone(null)を割り当てます。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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)