Làm Sạch Dữ Liệu — 80% Thời Gian Thật Của Người Phân Tích

Tóm tắt nhanh: Dữ liệu thật hiếm khi sạch sẵn — luôn có giá trị thiếu, trùng lặp, sai định dạng. Đây là công việc chiếm nhiều thời gian nhất của người làm phân tích dữ liệu thật, và pandas có sẵn công cụ xử lý nhanh — nhưng quyết định XỬ LÝ THẾ NÀO quan trọng hơn việc biết code.
Kỹ năng dùng nhiều nhất trong thực tế3 hàm cốt lõi: dropna, fillna, drop_duplicatesQuyết định ‘xóa hay điền’ quan trọng hơn code

Đến đây, bạn đã biết đọc dữ liệu từ nhiều nguồn (file, API, database). Nhưng dữ liệu đọc vào hiếm khi sạch sẵn để phân tích ngay — đây là lúc học kỹ năng dùng nhiều nhất trong công việc phân tích dữ liệu thật: làm sạch dữ liệu.

Sự thật ít ai nói: hầu hết thời gian KHÔNG dành cho “phân tích”

Phân tích thật20%Làm sạch80%
Trong công việc phân tích dữ liệu thật, phần lớn thời gian (thường được nhắc đến là khoảng 80%) dành cho việc dọn dẹp/chuẩn bị dữ liệu, không phải cho bước “phân tích” hào nhoáng.

Đây không phải là điều đáng thất vọng — đây là bản chất của công việc thật. Biết làm sạch dữ liệu nhanh và đúng là kỹ năng phân biệt người mới học với người làm việc thật hiệu quả.

3 hàm cốt lõi — và câu hỏi quan trọng hơn code

df.dropna()# Xóa hẳn dòng có giá trị thiếudf.fillna(0)# Điền giá trị thiếu bằng 0 (hoặc trung bình, hoặc giá trị trước đó)df.drop_duplicates()# Xóa các dòng bị trùng lặp hoàn toàn
3 hàm dùng nhiều nhất: dropna() (xóa), fillna() (điền), drop_duplicates() (bỏ trùng) — cú pháp đơn giản, nhưng quyết định dùng cái nào mới là phần khó.

Câu hỏi quan trọng hơn “hàm nào” là: tại sao dữ liệu bị thiếu? Nếu thiếu ngẫu nhiên (lỗi nhập liệu), điền bằng trung bình có thể hợp lý. Nhưng nếu thiếu có LÝ DO (ví dụ: khách hàng không điền thu nhập vì thu nhập quá cao/thấp), việc điền bằng trung bình có thể làm SAI LỆCH kết quả phân tích nghiêm trọng hơn là để trống. Không có câu trả lời đúng chung cho mọi trường hợp — cần hiểu bối cảnh dữ liệu trước khi quyết định.

Xem thêm

Video này (tiếng Anh) thực hành làm sạch dữ liệu thật, gồm cả xử lý giá trị thiếu và đổi kiểu dữ liệu.

Checklist tự kiểm tra sau bài này
  • Bạn viết được 3 dòng code cơ bản: dropna(), fillna(), drop_duplicates().
  • Bạn giải thích được vì sao “tại sao dữ liệu thiếu” quan trọng hơn “dùng hàm nào để xử lý”.
  • Bạn nêu được 1 ví dụ khi điền giá trị thiếu bằng trung bình có thể gây sai lệch kết quả.
Cần nhớ

Làm sạch dữ liệu không phải là bước “phụ” trước khi phân tích thật — nó THƯỜNG LÀ phần lớn công việc thật, và quyết định sai ở bước này (xóa nhầm, điền sai) có thể làm hỏng toàn bộ kết quả phân tích sau đó, dù mô hình có tốt đến đâu.

Câu hỏi thường gặp

Luôn nên xóa hay điền giá trị thiếu?

Không có quy tắc chung — xóa an toàn hơn nếu số lượng thiếu ít và ngẫu nhiên; điền phù hợp hơn nếu xóa sẽ mất quá nhiều dữ liệu quý. Luôn kiểm tra TỶ LỆ dữ liệu thiếu trước khi quyết định.

drop_duplicates() có phát hiện được trùng lặp “gần giống” không (ví dụ lỗi chính tả)?

Không tự động — drop_duplicates() chỉ phát hiện trùng lặp CHÍNH XÁC. Trùng lặp gần giống (do lỗi chính tả, viết hoa/thường khác) cần xử lý riêng, thường bằng cách chuẩn hóa dữ liệu trước.

Kỹ năng làm sạch dữ liệu có áp dụng cho dữ liệu tài chính không?

Rất quan trọng — báo cáo tài chính thực tế thường có dữ liệu thiếu (công ty mới, giai đoạn chuyển đổi), và quyết định xử lý sai có thể làm lệch hẳn kết luận về tình hình công ty.

Nguồn: Wes McKinney, Python for Data Analysis (3rd ed.), Chương 7 “Data Cleaning and Preparation” (O’Reilly, 2022). Nội dung diễn giải lại bằng lời riêng, không sao chép nguyên văn.