การแยกข้อความเพื่อสร้าง Feature ใหม่
โรงจอดรถเป็นปัจจัยสำคัญสำหรับบ้านในรัฐมินนิโซตา เนื่องจากคนส่วนใหญ่มีรถยนต์และการขูดหิมะออกจากรถที่จอดกลางแจ้งเป็นเรื่องน่าหนักใจ ประเภทของโรงจอดรถก็มีความสำคัญเช่นกัน เพราะมีผลต่อการเข้าถึงรถโดยไม่ต้องออกไปเผชิญกับความหนาวเย็น มาลองสร้าง feature ชื่อ has_attached_garage เพื่อบันทึกว่าโรงจอดรถนั้นติดกับตัวบ้านหรือไม่
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Feature Engineering with PySpark
คำแนะนำการฝึกหัด
- นำเข้าฟังก์ชัน
when()จากpyspark.sql.functions - สร้างเงื่อนไขการจับคู่สตริงโดยใช้
like()เพื่อค้นหารูปแบบAttached Garageในdf['GARAGEDESCRIPTION']พร้อมใช้ wildcard%เพื่อให้ตรงกับข้อความในตำแหน่งใดก็ได้ - สร้างเงื่อนไขอีกหนึ่งรายการโดยใช้
like()เพื่อค้นหารูปแบบDetached Garageในdf['GARAGEDESCRIPTION']พร้อมใช้ wildcard%เช่นเดียวกัน - สร้างคอลัมน์ใหม่ชื่อ
has_attached_garageโดยใช้when()กำหนดค่า 1 หากเป็นโรงจอดรถแบบติดบ้าน กำหนดค่า 0 หากเป็นแบบแยกออกมา และใช้otherwise()กำหนดค่า null ด้วยNoneหากไม่ใช่ทั้งสองกรณี
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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)