อ่าน CSV ด้วย pandas
CSV ใช้ทั่วไปสำหรับ export และแลกเปลี่ยน dataset
pandas read_csv ใช้เมื่อใด?
ไฟล์ CSV ใช้แลกเปลี่ยนข้อมูลระหว่างสเปรดชีต ระบบธุรกิจ เครื่องมือวิเคราะห์ API และฐานข้อมูล pandas.read_csv() โหลดข้อมูลเป็น DataFrame เพื่อทำความสะอาด กรอง และวิเคราะห์
กรณีใช้งานทั่วไป
- วิเคราะห์ข้อมูลที่ส่งออกจาก Excel, Google Sheets หรือ CRM
- โหลด dataset สำหรับ data science และ machine learning
- แก้ไขข้อมูลที่หายไป ชนิดข้อมูลผิด หรือข้อมูลซ้ำก่อนนำเข้า
เคล็ดลับ: สำหรับข้อมูลจริงควรกำหนด dtype, parse_dates, usecols และ na_values เพื่อควบคุมการอ่านอย่างชัดเจน
ตัวอย่างพื้นฐาน
main.py
import pandas as pd
from io import StringIO
csv_text = "name,score\nAda,95\nLin,88\nSam,91"
students = pd.read_csv(StringIO(csv_text))
print(students)
ผลลัพธ์ที่คาดหวัง
name score
0 Ada 95
1 Lin 88
2 Sam 91
ตัวอย่างขั้นสูง
ไฟล์ CSV จริงมักมีขนาดใหญ่และข้อมูลไม่สมบูรณ์ ตัวอย่างนี้เลือกเฉพาะคอลัมน์ที่ต้องใช้ แปลงวันที่ กำหนดชนิดข้อมูล และตรวจจับรูปแบบข้อมูลที่หายไปหลายแบบ
advanced_csv.py
import pandas as pd
sales = pd.read_csv(
"sales.csv",
usecols=["order_date", "product", "quantity", "revenue"],
parse_dates=["order_date"],
dtype={"product": "string", "quantity": "Int64"},
na_values=["", "N/A", "unknown"],
)
sales = sales.dropna(subset=["order_date", "product"])
monthly_revenue = sales.groupby(
sales["order_date"].dt.to_period("M")
)["revenue"].sum()
print(monthly_revenue)
หลักการทำงาน
read_csv คาดเดา header และชนิดข้อมูล ส่วน dtype, parse_dates และ na_values ช่วยควบคุมการอ่าน
เปลี่ยนค่าและรันโปรแกรมด้วย คอมไพเลอร์ Python ออนไลน์ของ CodeUtility โดยไม่ต้องติดตั้ง Python
แบบฝึกหัด
ลองเปลี่ยน input และทดสอบกรณีขอบก่อนใช้ชุดข้อมูลที่ใหญ่ขึ้น
- เพิ่มแถว คอลัมน์ และค่าที่หายไป
- รวมการกรอง การเรียง และ groupby
- อ่านไฟล์จริงและตรวจสอบ dtype