Đọc dữ liệu CSV với pandas
CSV thường dùng cho file export và trao đổi dataset.
Đọc CSV với pandas dùng khi nào?
CSV thường được dùng để trao đổi dữ liệu giữa Excel, hệ thống bán hàng, công cụ phân tích, API và cơ sở dữ liệu. pandas.read_csv() chuyển dữ liệu thành DataFrame để làm sạch, lọc, thống kê và trực quan hoá.
Các tình huống phổ biến
- Phân tích file xuất từ Excel, Google Sheets hoặc CRM.
- Nạp tập dữ liệu cho machine learning và data science.
- Làm sạch dữ liệu thiếu, sai kiểu hoặc trùng lặp trước khi import.
Lưu ý: Với dữ liệu thực tế, nên khai báo dtype, parse_dates, usecols và na_values để kiểm soát cách pandas đọc dữ liệu.
Ví dụ cơ bản
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)
Kết quả dự kiến
name score
0 Ada 95
1 Lin 88
2 Sam 91
Ví dụ nâng cao
File CSV thực tế thường lớn và chưa sạch. Ví dụ này chỉ đọc cột cần thiết, chuyển ngày tháng, khai báo kiểu dữ liệu và nhận diện nhiều dạng giá trị thiếu.
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)
Cách hoạt động
read_csv nhận diện header và type; dtype, parse_dates, na_values giúp import rõ ràng hơn.
Thay đổi giá trị và chạy chương trình bằng trình chạy Python online của CodeUtility mà không cần cài Python.
Bài tập mở rộng
Hãy sửa code theo các bài tập dưới đây để hiểu rõ cách hoạt động thay vì chỉ sao chép kết quả.
- Thêm dòng, cột và giá trị thiếu vào dữ liệu mẫu.
- Kết hợp lọc, sắp xếp và groupby để tạo báo cáo nhỏ.
- Đọc file thực tế, kiểm tra dtype và xử lý dữ liệu không hợp lệ.