แทนที่ค่า rating ด้วยค่ามัธยฐานของกลุ่ม
ในแบบฝึกหัดที่แล้ว เราแทนที่ค่าที่หายไปในคอลัมน์ rating ด้วยค่ามัธยฐานของคอลัมน์ทั้งหมด แต่จะทำได้ดีกว่านั้นไหม? ได้! สามารถแทนที่ค่าที่หายไปด้วยค่ามัธยฐานของคะแนนช็อกโกแลตจากบริษัทเดียวกันแทน มาลองทำกัน!
มีฟังก์ชัน replace_missing() ที่กำหนดไว้ล่วงหน้า รับอาร์กิวเมนต์ 2 ตัว ได้แก่ DataFrame group และคอลัมน์ col ฟังก์ชันนี้จะพยายามคำนวณค่ามัธยฐานของคอลัมน์ col และคืนค่าผลลัพธ์หากสำเร็จ แต่หากการคำนวณค่ามัธยฐานล้มเหลว เช่น เมื่อไม่มีค่าใดเลย ฟังก์ชันจะคืนค่าที่กำหนดไว้ล่วงหน้าแทน
ชุดข้อมูล chocolates และแพ็กเกจ DataFrames และ Statistics ถูกโหลดไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การจัดการข้อมูลใน Julia
คำแนะนำการฝึกหัด
- จัดกลุ่ม
chocolatesตามcompanyแล้ววนซ้ำผ่าน GroupedDataFrame - กรองแต่ละกลุ่มโดยใช้
ismissing()ร่วมกับคอลัมน์ratingแล้วแทนที่ค่าที่หายไปด้วยค่าที่ได้จากฟังก์ชันreplace_missing()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Group by company and iterate
for group in ____(____)
# Subset each group using ismissing() and the rating column, assign a new value
group[____, ____] .= replace_missing(group, :rating)
end
println(describe(chocolates, :nmissing))