Nội dung

1. Khái niệm dữ liệu bẩn (Dirty Data)

Trong thực tế, dữ liệu thường gặp các vấn đề như:

  • Thiếu dữ liệu

  • Dữ liệu trùng lặp

  • Sai định dạng

  • Dữ liệu không hợp lệ

Ví dụ:

IDNameAgeSalary
1An251000
2BìnhNaN1200
3Chi22900
3Chi22900

Trong bảng trên:

  • NaN là dữ liệu thiếu

  • Dòng 3 bị trùng lặp

Nếu không làm sạch dữ liệu sẽ dẫn đến:

  • Kết quả phân tích sai

  • Mô hình học máy không chính xác


2. Phát hiện dữ liệu thiếu

Trong Pandas, dữ liệu thiếu thường được biểu diễn bằng:

NaN
None

2.1 Kiểm tra dữ liệu thiếu

Sử dụng hàm:

df.isnull()

Ví dụ:

import pandas as pd

df = pd.read_csv("employees.csv")

df.isnull()

Kết quả:

  • True: dữ liệu thiếu

  • False: dữ liệu hợp lệ


2.2 Đếm số dữ liệu thiếu

df.isnull().sum()

Ví dụ kết quả:

ColumnMissing
Age3
Salary1

3. Xử lý dữ liệu thiếu

Có hai cách phổ biến:

  1. Xóa dữ liệu thiếu

  2. Điền giá trị thay thế


3.1 Xóa dữ liệu thiếu

Sử dụng hàm:

df.dropna()

Ví dụ:

df_clean = df.dropna()

Ý nghĩa:

  • Xóa tất cả dòng có chứa NaN.


Xóa theo cột

df.dropna(axis=1)

Xóa theo điều kiện

Ví dụ chỉ xóa khi thiếu ở cột Age:

df.dropna(subset=["Age"])

3.2 Điền giá trị thay thế

Thay vì xóa dữ liệu, có thể điền giá trị thay thế.

Sử dụng hàm:

df.fillna()

Điền giá trị cố định

df.fillna(0)

Điền bằng giá trị trung bình

df["Age"].fillna(df["Age"].mean())

Điền bằng giá trị phổ biến nhất (mode)

df["Department"].fillna(df["Department"].mode()[0])

4. Phát hiện dữ liệu trùng lặp

Dữ liệu trùng lặp làm cho:

  • kết quả thống kê sai

  • dữ liệu bị phóng đại


4.1 Kiểm tra dữ liệu trùng

Sử dụng hàm:

df.duplicated()

Ví dụ:

df[df.duplicated()]

4.2 Xóa dữ liệu trùng

Sử dụng hàm:

df.drop_duplicates()

Ví dụ:

df = df.drop_duplicates()

Xóa trùng theo cột

df.drop_duplicates(subset=["ID"])

III. LÝ THUYẾT LIÊN QUAN

1. Tác động của dữ liệu bẩn

Dữ liệu bẩn có thể gây ra:

  • Sai lệch kết quả thống kê

  • Sai dự đoán trong Machine Learning

  • Giảm độ tin cậy của báo cáo

Do đó Data Cleaning là bước quan trọng nhất trong Data Analysis.


2. Các chiến lược xử lý Missing Values

Các chiến lược phổ biến:

  1. Xóa dữ liệu thiếu

  2. Điền bằng giá trị trung bình (mean)

  3. Điền bằng trung vị (median)

  4. Điền bằng giá trị phổ biến (mode)

  5. Điền bằng giá trị dự đoán


IV. TRÌNH TỰ THỰC HIỆN

Bước 1: Import thư viện

import pandas as pd

Bước 2: Đọc dữ liệu

df = pd.read_csv("employees.csv")

Bước 3: Kiểm tra dữ liệu thiếu

df.isnull().sum()

Bước 4: Xử lý dữ liệu thiếu

df["Age"].fillna(df["Age"].mean())

Bước 5: Kiểm tra dữ liệu trùng

df.duplicated()

Bước 6: Xóa dữ liệu trùng

df.drop_duplicates()