เมื่อไฟล์ CSV มีช่องว่าง (whitespace) นำหน้าค่าข้อมูล เช่น " BMW" แทน "BMW" จะทำให้อ่านข้อมูลผิดปกติ พารามิเตอร์ skipinitialspace=True ใน pd.read_csv() จะตัดช่องว่างนำหน้าออกอัตโนมัติ
ขั้นตอนการทำงาน
1. อ่าน CSV ปกติ (ไม่ตัดช่องว่าง)
import pandas as pd
dataFrame = pd.read_csv(r"C:\Users\amit_\Desktop\CarRecords.csv")
print("โดยไม่ใช้ skipinitialspace:\n", dataFrame)
2. อ่าน CSV พร้อม skipinitialspace=True
dataFrame = pd.read_csv(r"C:\Users\amit_\Desktop\CarRecords.csv", skipinitialspace=True)
print("\nใช้ skipinitialspace=True:\n", dataFrame)
โค้ดตัวอย่างสมบูรณ์
import pandas as pd
# อ่าน CSV ปกติ
dataFrame = pd.read_csv(r"C:\Users\amit_\Desktop\CarRecords.csv")
print("DataFrame (ปกติ):\n", dataFrame)
# อ่าน CSV พร้อมข้ามช่องว่างนำหน้า
dataFrame = pd.read_csv(r"C:\Users\amit_\Desktop\CarRecords.csv", skipinitialspace=True)
print("\nDataFrame (skipinitialspace=True):\n", dataFrame)
ผลลัพธ์เปรียบเทียบ
DataFrame (ปกติ):
Car Place UnitsSold
0 Audi Bangalore 80
1 Porsche Mumbai 110
2 RollsRoyce Pune 100
3 BMW Delhi 200
4 Mercedes Hyderabad 80
5 Lamborghini Chandigarh 80
6 Audi Mumbai 60
7 Mercedes Pune 120
8 Lamborghini Delhi 100
DataFrame (skipinitialspace=True):
Car Place UnitsSold
0 Audi Bangalore 80
1 Porsche Mumbai 110
2 RollsRoyce Pune 100
3 BMW Delhi 200
4 Mercedes Hyderabad 80
5 Lamborghini Chandigarh 80
6 Audi Mumbai 60
7 Mercedes Pune 120
8 Lamborghini Delhi 100
หมายเหตุ
- ในตัวอย่างนี้ข้อมูลไม่มีช่องว่างนำหน้า จึงไม่เห็นความแตกต่างชัดเจน
- แต่ถ้าข้อมูลใน CSV เป็น
" BMW"(มี space นำหน้า) จะอ่านเป็น"BMW"ได้ถูกต้อง - ทำงานกับ delimiter ทุกประเภท (comma, tab, semicolon, etc.)
- ไม่ส่งผลต่อช่องว่างระหว่างคำ (internal spaces) เช่น
"New York"ยังคงสมบูรณ์
พารามิเตอร์เกี่ยวข้องอื่นๆ
skip_blank_lines=True- ข้ามบรรทัดว่าง (default)na_filter=True- ตรวจจับค่าว่างเป็น NaN (default)dtype- บังคับชนิดข้อมูลคอลัมน์