เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การแทนค่า NaN

มาลองแทนค่าข้อมูลที่ขาดหายไปโดยใช้เมธอด .transform() กัน ในงานก่อนหน้า เราสร้าง DataFrame fheroes ซึ่งลบกลุ่มที่มีจำนวนข้อมูล bmi ไม่เพียงพอออกไปแล้ว อย่างไรก็ตาม คอลัมน์ bmi ยังมีค่าที่ขาดหายไป (NaN) จำนวนมาก โดยมี DataFrame fheroes สองชุด (imp_globmean และ imp_grpmean) งานของคุณคือแทนค่า NaN ในคอลัมน์ bmi ด้วยค่าเฉลี่ยรวมทั้งหมด และด้วยค่าเฉลี่ยต่อกลุ่มที่แบ่งตามปัจจัย Publisher และ Alignment ตามลำดับ

เคล็ดลับ: pandas Series และ NumPy arrays มีเมธอดพิเศษ .fillna() ซึ่งแทนที่ค่า NaN ทุกตัวด้วยค่าที่ระบุเป็นอาร์กิวเมนต์

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

ฝึกทำโจทย์สัมภาษณ์งานเขียนโค้ดด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนดฟังก์ชัน lambda ที่แทนค่า NaN ใน series ด้วยค่าเฉลี่ยของ series นั้น
  • แทนค่า NaN ในคอลัมน์ bmi ของ imp_globmean ด้วยค่าเฉลี่ยรวมทั้งหมด
  • แทนค่า NaN ในคอลัมน์ bmi ของ imp_grpmean ด้วยค่าเฉลี่ยต่อกลุ่ม

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Define a lambda function that imputes NaN values in series
impute = lambda series: ____

# Impute NaNs in the bmi column of imp_globmean
imp_globmean['bmi'] = ____
print("Global mean = " + str(fheroes['bmi'].mean()) + "\n")

groups = imp_grpmean.groupby(['Publisher', 'Alignment'])

# Impute NaNs in the bmi column of imp_grpmean
imp_grpmean['bmi'] = groups[____].____
print(groups['bmi'].mean())
แก้ไขและรันโค้ด