การกรองฟิลด์ตัวเลขแบบมีเงื่อนไข
การทำความเข้าใจบริบทของข้อมูลเป็นสิ่งสำคัญมาก เราต้องการดูว่าช่วงราคาบ้านที่ขายได้ปกติอยู่ที่เท่าใด ดังนั้นจึงต้องกรองบ้านที่มีราคาสูงหรือต่ำกว่าค่าเฉลี่ยอย่างผิดปกติออกไป โดยจะคำนวณค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐาน แล้วนำไปกรองฟิลด์ log_SalesClosePrice ที่มีการกระจายใกล้เคียงการแจกแจงปกติ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Feature Engineering with PySpark
คำแนะนำการฝึกหัด
- นำเข้า
mean()และstddev()จากpyspark.sql.functions - ใช้
agg()เพื่อคำนวณค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานของ'log_SalesClosePrice'ด้วยฟังก์ชันที่นำเข้ามา - สร้างขอบเขตบนและขอบเขตล่างโดยนำ
mean_valบวก/ลบ 3 เท่าของstddev_val - สร้างตัวกรอง
where()สำหรับ'log_SalesClosePrice'โดยใช้ทั้งlow_boundและhi_bound
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
from ____ import ____, ____
# Calculate values used for outlier filtering
mean_val = df.____({____: ____}).collect()[0][0]
stddev_val = df.____({____: ____}).collect()[0][0]
# Create three standard deviation (μ ± 3σ) lower and upper bounds for data
low_bound = ____ - (3 * ____)
hi_bound = ____ + (3 * ____)
# Filter the data to fit between the lower and upper bounds
df = df.____((df[____] < ____) ____ (df[____] > ____))