Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python Pandas - ข้ามช่องว่างนำหน้า (Leading Whitespace) ใน CSV ด้วย skipinitialspace

เมื่อไฟล์ 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 - บังคับชนิดข้อมูลคอลัมน์