テキストフィルターでレコードを除外する
クライアントにたくさん質問し、変数をよく理解することはとても重要です。調べてみると、Assumable mortgage は不動産業界では珍しいケースで、クライアントからはそれらを除外するよう提案がありました。この演習では、like() に似ていますが、単一の値ではなくフィルターに使う値のリストを渡せる isin() を使います。
この演習はコースの一部です
PySparkで学ぶ特徴量エンジニアリング
演習の手順
select()とshow()を使って列'ASSUMABLEMORTGAGE'に含まれる重複のない値を確認し、文字列'Yes'を含むすべての値からリストyes_valuesを作成します。~df['ASSUMABLEMORTGAGE']、isin()、.isNull()を使って、リストyes_valuesに該当する値を含むレコードを除外し、かつ null のレコードは保持するための NOT フィルターを作成します。このフィルターを変数text_filterに保存します。where()を使ってtext_filterをdfに適用します。dfに残っているレコード数を出力します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Inspect unique values in the column 'ASSUMABLEMORTGAGE'
df.____([____]).distinct().____()
# List of possible values containing 'yes'
yes_values = [____, ____]
# Filter the text values out of df but keep null values
text_filter = ~df['ASSUMABLEMORTGAGE'].isin(____) | df['ASSUMABLEMORTGAGE'].isNull()
df = df.____(text_filter)
# Print count of remaining records
print(____.____())