การ Override Schema ที่อนุมานได้
เมื่อ Polars สแกนไฟล์ที่ส่งออกจาก vendor จะใช้แถวแรกๆ ในการอนุมานประเภทของคอลัมน์ คอลัมน์ branch_code ใช้ตัวระบุ 3 หลักที่มีเลขศูนย์นำหน้า (เช่น "001", "002", …) แต่ Polars มองว่าเป็นตัวเลขจำนวนเต็ม จึงแปลงเป็น Int64 และตัดเลขศูนย์นำหน้าออกโดยอัตโนมัติ ให้ override schema เพื่อให้คอลัมน์ branch_code คงอยู่ในรูปแบบ string
ระบบแสดง schema ที่อนุมานได้ไว้ให้แล้ว เพื่อให้เห็นว่า Polars คาดเดาประเภทข้อมูลอย่างไรก่อนที่จะมีการ override
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การปรับขนาดและเพิ่มประสิทธิภาพ Data Pipeline ด้วย Polars
คำแนะนำการฝึกหัด
- Override คอลัมน์
branch_codeให้อ่านค่าเป็นpl.String
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
schema = pl.scan_csv(
MESSY_CSV_PATH,
separator=";",
skip_rows=2,
infer_schema_length=5,
# Force branch_code to String
schema_overrides={"____": pl.____},
).collect_schema()
print("\nOverridden schema:")
print(schema)