Pandas: นำเข้า csv โดยมีจำนวนคอลัมน์ต่อแถวต่างกัน
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อนำเข้าไฟล์ CSV ลงในแพนด้าได้เมื่อมีจำนวนคอลัมน์ต่อแถวต่างกัน:
df = pd. read_csv (' uneven_data.csv ', header= None , names=range( 4 ))
ค่าภายในฟังก์ชัน range() ควรเป็นจำนวนคอลัมน์ในแถวโดยมีจำนวนคอลัมน์สูงสุด
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: นำเข้า CSV ลงใน Pandas โดยมีจำนวนคอลัมน์ต่อแถวต่างกัน
สมมติว่าเรามีไฟล์ CSV ต่อไปนี้ชื่อ uneven_data.csv :

โปรดทราบว่าแต่ละแถวมีจำนวนคอลัมน์ไม่เท่ากัน
หากเราพยายามใช้ฟังก์ชัน read_csv() เพื่อนำเข้าไฟล์ CSV นี้ลงใน DataFrame ของ pandas เราจะได้รับข้อผิดพลาด:
import pandas as pd #attempt to import CSV file with differing number of columns per row df = pd. read_csv (' uneven_data.csv ', header= None ) ParserError: Error tokenizing data. C error: Expected 2 fields in line 2, saw 4
เราได้รับ ParserError ซึ่งบอกเราว่าแพนด้าคาดว่าจะมี 2 ฟิลด์ (เนื่องจากนั่นคือจำนวนคอลัมน์ในแถวแรก) แต่เห็น 4
ข้อผิดพลาดนี้บอกเราว่าจำนวนคอลัมน์สูงสุดในแถวที่กำหนดคือ 4
ดังนั้น เราสามารถนำเข้าไฟล์ CSV และระบุค่า range(4) ให้กับอาร์กิวเมนต์ ของชื่อได้ :
import pandas as pd #import CSV file with differing number of columns per row df = pd. read_csv (' uneven_data.csv ', header= None , names=range( 4 ))) #view DataFrame print (df) 0 1 2 3 0 to 22 NaN NaN 1 B 16 10.0 12.0 2 C 25 10.0 NaN 3 D 14 2.0 7.0 4 E 20 4.0 NaN
โปรดทราบว่าเราสามารถนำเข้าไฟล์ CSV ไปยัง Pandas DataFrame ได้สำเร็จโดยไม่มีข้อผิดพลาด เนื่องจากเราบอกอย่างชัดเจนว่า Pandas คาดว่าจะมี 4 คอลัมน์
ตามค่าเริ่มต้น แพนด้าจะเติมค่าที่หายไปทั้งหมดในแต่ละแถวด้วย NaN
หากคุณต้องการให้ค่าที่หายไปปรากฏเป็นศูนย์ คุณสามารถใช้ฟังก์ชัน fillna() ได้ดังนี้
#fill NaN values with zeros df_new = df. fillna ( 0 ) #view new DataFrame print (df_new) 0 1 2 3 0 to 22 0.0 0.0 1 B 16 10.0 12.0 2 C 25 10.0 0.0 3 D 14 2.0 7.0 4 E 20 4.0 0.0
ค่า NaN แต่ละค่าใน DataFrame ถูกแทนที่ด้วยศูนย์แล้ว
หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มของฟังก์ชัน pandas read_csv() ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีทำงานทั่วไปอื่นๆ ใน Python:
Pandas: วิธีข้ามบรรทัดเมื่ออ่านไฟล์ CSV
Pandas: วิธีเพิ่มข้อมูลลงในไฟล์ CSV ที่มีอยู่
Pandas: วิธีระบุประเภทเมื่อนำเข้าไฟล์ CSV
Pandas: ตั้งชื่อคอลัมน์เมื่อนำเข้าไฟล์ CSV