เมื่อได้ไฟล์ CSV จากระบบอื่นหรือจากทีมงาน ขั้นตอนแรกในงานข้อมูลคือโหลดเข้า Python แล้วแปลงเป็น pandas DataFrame เพื่อกรอง รวมค่า หรือเตรียมก่อนส่งต่อ บทความนี้สรุปการใช้ pandas.read_csv ใน Python 3.12 กับตัวเลือกที่ใช้บ่อยจริงๆ ไม่ใช่แค่พิมพ์ชื่อไฟล์แล้วจบ
ถ้าต้องการย้อนไปดูการส่งข้อมูลออกจาก DataFrame หลังประมวลผลแล้ว อ่านคู่กับ วิธีนำออกข้อมูล Pandas DataFrame เป็น CSV และ Excel ได้เลย สองบทความนี้ครอบคลุมทั้งนำเข้าและนำออกในลำดับงานจริง

ขั้นตอนพื้นฐานที่ควรตั้งก่อนอ่านไฟล์
- ระบุตัวแบ่งคอลัมน์ ด้วย
sepค่าเริ่มต้นคือจุลภาค แต่ไฟล์จากบางประเทศใช้;หรือ\tถ้าแยกคอลัมน์ผิด ตัวเลขจะกลายเป็นข้อความยาวๆ ในคอลัมน์เดียว - กำหนด encoding ด้วย
encoding='utf-8'หรือencoding='tis-620'เมื่อเจอไฟล์เก่าจาก Windows ในไทย ถ้าไม่ตรง ตัวอักษรไทยจะกลายเป็นสัญลักษณ์แปลกๆ - แถวหัวตาราง ใช้
header=0เมื่อแถวแรกเป็นชื่อคอลัมน์ หรือheader=Noneแล้วตั้งชื่อเองด้วยnames=[...]เมื่อไฟล์ไม่มีหัว
ตัวเลือกที่ช่วยให้ dtype และวันที่ถูกต้อง
การปล่อยให้ pandas เดา dtype เองมักใช้ได้ แต่คอลัมน์รหัสไปรษณีย์หรือเลขที่ควรเป็นข้อความอาจถูกอ่านเป็นตัวเลขและเสียศูนย์หน้า ใช้ dtype หรืออ่านเป็น string แล้วแปลงทีหลังตามกติกาธุรกิจ
คอลัมน์วันที่ควรใช้ parse_dates=['วันที่'] หรือส่งรายชื่อหลายคอลัมน์เมื่อวันที่แยกเป็นหลายช่อง จะได้ค่าเป็น datetime ตรงกับงานต่อเนื่อง เช่น resample หรือ merge กับตารางอื่น
import pandas as pd
df = pd.read_csv(
"รายงาน.csv",
sep=",",
encoding="utf-8",
header=0,
parse_dates=["order_date"],
dtype={"zip": "string"},
)
อาการที่มักเจอเมื่ออ่าน CSV ผิดรูปแบบ
ถ้าเห็นคอลัมน์เดียวยาวผิดปกติ ให้ตรวจ sep ก่อน ถ้าตัวเลขกลายเป็น scientific notation โดยไม่ตั้งใจ ให้ตรวจ dtype และการมีอักขระพิเศษในตัวเลข หากอ่านแล้วแถวนับไม่ตรงกับที่คาด อาจมีบรรทัดข้อความที่มีตัวขึ้นบรรทัดใหม่ภายในเครื่องหมายคำพูด ต้องเปิดไฟล์ด้วยตัวแก้ไขข้อความเพื่อดูรูปแบบจริงก่อนตั้งค่าเพิ่ม
เชื่อมกับหน้าแรกและบทความที่เกี่ยวข้อง
กลับไปหน้าแรก Dev Journeys เพื่อดูบทความอื่นในหมวด Python และ Data Science หรือเปิด บทความส่งออก DataFrame เป็น CSV และ Excel เมื่อต้องการเขียนไฟล์หลังจัดรูปแบบข้อมูลแล้ว
แนวทางนี้เหมาะกับงานนำเข้าจาก CSV ที่ควบคุมรูปแบบได้ หากแหล่งข้อมูลอยู่บนเว็บหรือต้องดึงหลายแผ่น Excel การออกแบบ pipeline จะต่างออกไป แต่จุดเริ่มของทุกอย่างยังคือการอ่านไฟล์ให้ตรงตั้งแต่ครั้งแรก
