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

การเข้ารหัสแบบ Ordinal ใน DataFrame

ฟีเจอร์ประเภท categorical สามารถเข้ารหัสได้ 2 วิธี ได้แก่ one-hot encoding และ ordinal encoding ใน one-hot encoding แต่ละหมวดหมู่จะกลายเป็นคอลัมน์ โดยคอลัมน์ที่ตรงกับหมวดหมู่ของแต่ละแถวจะมีค่าเป็น 1 และคอลัมน์อื่นเป็น 0 ส่วน ordinal encoding จะแมปแต่ละหมวดหมู่ให้เป็นค่าจำนวนเต็มตั้งแต่ 0 จนถึงจำนวนหมวดหมู่ทั้งหมด

ในแบบฝึกหัดนี้ จะวนลูปผ่านทุกคอลัมน์ใน DataFrame users เพื่อเข้ารหัสหมวดหมู่แบบ ordinal นอกจากนี้ยังจะจัดเก็บ encoder สำหรับแต่ละคอลัมน์ไว้ใน dictionary ชื่อ ordinal_enc_dict เพื่อให้สามารถแปลงคอลัมน์ที่เข้ารหัสแล้วกลับไปเป็นหมวดหมู่เดิมได้

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

การจัดการข้อมูลที่หายไปใน Python

ดูคอร์ส

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

  • กำหนด dictionary เปล่าชื่อ ordinal_enc_dict
  • สร้างออบเจกต์ Ordinal Encoder สำหรับแต่ละคอลัมน์
  • เลือกค่าที่ไม่ใช่ null ของคอลัมน์ใน users แล้วทำการเข้ารหัส
  • กำหนดค่าที่เข้ารหัสแล้วกลับไปยังค่าที่ไม่ใช่ null ของแต่ละคอลัมน์ (col_name) ใน users

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

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

# Create an empty dictionary ordinal_enc_dict
ordinal_enc_dict = ___

for col_name in users:
    # Create Ordinal encoder for col
    ordinal_enc_dict[col_name] = ___
    col = users[col_name]
    
    # Select non-null values of col
    col_not_null = ___
    reshaped_vals = col_not_null.values.reshape(-1, 1)
    encoded_vals = ordinal_enc_dict[col_name].fit_transform(reshaped_vals)
    
    # Select the non-null values for the column col_name in users and store the encoded values
    users.loc[___, ___] = np.squeeze(encoded_vals)
แก้ไขและรันโค้ด