Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Trang Chủ Hướng Dẫn Đồ Án Hướng dẫn xử lý thiếu dữ liệu trong Pandas
Hướng Dẫn Đồ ÁnLập Trình AI

Hướng dẫn xử lý thiếu dữ liệu trong Pandas

Chia sẻ
Chia sẻ

Thiếu dữ liệu (missing data) là vấn đề rất phổ biến khi làm việc với dữ liệu thực tế. Dữ liệu bị thiếu có thể đến từ lỗi thu thập, người dùng không nhập thông tin, hoặc quá trình nhập liệu sai sót. Nếu không xử lý đúng cách, dữ liệu thiếu có thể làm giảm chất lượng mô hình và gây sai lệch kết quả phân tích.

Trước khi đi vào chi tiết, bạn có thể tham khảo bài Tổng hợp các loại tập dữ liệu mở cho đồ án AI để tìm nguồn dữ liệu phong phú, bài Xây dựng mô hình phát hiện bệnh từ ảnh X-quang để hiểu cách xử lý dữ liệu ảnh y tế có missing value, hoặc bài Hướng dẫn xây dựng mô hình dự đoán điểm thi bằng Machine Learning để thấy tầm quan trọng của dữ liệu sạch khi xây dựng mô hình.

Tổng quan về dữ liệu thiếu và Pandas

Trong Pandas, dữ liệu thiếu được biểu diễn bằng giá trị NaN (Not a Number). Các hàm trong Pandas đã được tối ưu để phát hiện và xử lý các giá trị này một cách dễ dàng.

Nguyên nhân dẫn đến dữ liệu thiếu có thể bao gồm như sau:

  • Giá trị không được nhập hoặc bị xóa trong quá trình thu thập.

  • Dữ liệu hợp nhất từ nhiều nguồn với định dạng không đồng nhất.

  • Lỗi khi tải hoặc chuyển đổi dữ liệu từ file khác (CSV, Excel).

Trong bài này, chúng ta sẽ sử dụng bộ dữ liệu mẫu có chứa giá trị thiếu và tìm hiểu các cách xử lý phổ biến như loại bỏ, thay thế, và ước lượng dữ liệu bị thiếu.

Cài đặt và tải dữ liệu mẫu

Chúng ta sử dụng Pandas để thao tác với dữ liệu:

# Cài đặt Pandas nếu chưa có
!pip install pandas

# Import thư viện
import pandas as pd

Tải dữ liệu mẫu từ GitHub: bộ dữ liệu Titanic nổi tiếng, vốn có nhiều giá trị thiếu ở cột Age và Cabin.

# Tải dữ liệu Titanic từ GitHub
url = 'https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv'
df = pd.read_csv(url)

# Xem 5 dòng đầu
df.head()

Kiểm tra thông tin tổng quan và giá trị thiếu:

# Thông tin tổng quan
df.info()

# Số lượng giá trị thiếu từng cột
df.isnull().sum()

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

Sử dụng Pandas để phát hiện các giá trị NaN:

# Xem hàng có giá trị thiếu
df[df.isnull().any(axis=1)]

Hoặc vẽ heatmap trực quan bằng seaborn để dễ thấy các ô bị thiếu (cài seaborn nếu cần):

!pip install seaborn
import seaborn as sns
import matplotlib.pyplot as plt

sns.heatmap(df.isnull(), cbar=False, cmap='viridis')
plt.title('Heatmap các giá trị thiếu')
plt.show()

Cách xử lý dữ liệu thiếu

Xóa dữ liệu bị thiếu

  • Xóa hàng chứa giá trị thiếu:

# Xóa hàng có bất kỳ giá trị thiếu nào
df_dropna_rows = df.dropna()
  • Xóa cột nếu toàn bộ hoặc phần lớn giá trị bị thiếu:
# Xóa cột nếu nhiều giá trị thiếu
df_dropna_cols = df.dropna(axis=1)

Thay thế giá trị thiếu

  • Thay thế bằng giá trị cụ thể (ví dụ: số 0 hoặc một chuỗi)

# Thay thế NaN bằng 0
df_fillna_zero = df.fillna(0)
  • Thay thế bằng giá trị trung bình, trung vị hoặc mode

# Thay thế NaN ở cột Age bằng giá trị trung bình
df['Age'].fillna(df['Age'].mean(), inplace=True)

# Thay thế NaN ở cột Embarked bằng mode
df['Embarked'].fillna(df['Embarked'].mode()[0], inplace=True)

Ước lượng giá trị thiếu

Bạn cũng có thể dùng mô hình học máy (ví dụ: KNN Imputer) để dự đoán giá trị bị thiếu – phù hợp với dữ liệu quan trọng.

from sklearn.impute import KNNImputer
imputer = KNNImputer(n_neighbors=5)
df_knn = pd.DataFrame(imputer.fit_transform(df.select_dtypes(include=['float64', 'int64'])),
                      columns=df.select_dtypes(include=['float64', 'int64']).columns)

Kiểm tra lại sau xử lý

Sau khi xử lý dữ liệu thiếu, hãy kiểm tra lại:

# Xem lại số lượng giá trị thiếu
df.isnull().sum()

Đảm bảo không còn giá trị NaN để tránh lỗi khi huấn luyện mô hình.

Kết luận

Xử lý dữ liệu thiếu là bước quan trọng để đảm bảo chất lượng dữ liệu trước khi đưa vào mô hình học máy. Tùy vào ngữ cảnh, bạn có thể chọn xóa, thay thế hoặc ước lượng giá trị bị thiếu.

Với Pandas, các hàm như dropna, fillna, và tích hợp sklearn giúp bạn thực hiện các bước này một cách dễ dàng và hiệu quả.

Tham Gia Nhóm – Hỗ Trợ Lập Trình

Hỗ Trợ Đồ Án – ThueDoAn.vn

Liên quan
Hướng Dẫn Đồ Án

Checklist 10 bước kiểm tra cuối cùng trước khi nhấn nút nộp đồ án

Thời điểm chuẩn bị nhấn nút nộp đồ án luôn mang lại...

Hướng Dẫn Đồ Án

Tuyệt chiêu đối phó với những giảng viên hướng dẫn ‘khó tính’ nhất

Giai đoạn làm đồ án tốt nghiệp luôn đi kèm với vô...

Hướng Dẫn Đồ Án

Tại sao việc quản lý Source Code bằng Git lại quan trọng hơn bạn nghĩ?

Trong thế giới lập trình hiện đại, mã nguồn chính là linh...

Hướng Dẫn Đồ Án

Những chức năng ‘thừa’ khiến bạn tốn thời gian mà không được cộng điểm

Làm đồ án tốt nghiệp là một cuộc đua thực thụ với...

Hướng Dẫn Đồ Án

Cách xử lý khi đề tài bị trùng lặp ý tưởng với các khóa trước quá nhiều

Lựa chọn đề tài đồ án luôn là bước khởi đầu đầy...

Hướng Dẫn Đồ Án

Làm sao để giải trình với giảng viên khi code bị nghi ngờ là đi chép?

Trong quá trình thực hiện đồ án, việc tham khảo mã nguồn...

Hướng Dẫn Đồ Án

Cảnh báo: Những nguồn share code ‘rác’ trên mạng cần tuyệt đối tránh

Trong quá trình làm đồ án, việc tìm kiếm sự hỗ trợ...

Hướng Dẫn Đồ Án

Sai lầm khi chọn công nghệ quá khó so với năng lực thực tế của bản thân

Chọn đề tài và công nghệ cho đồ án luôn là bước...

Liên Hệ
Liên hệ để được tư vấn & hỗ trợ đồ án CNTT nhé bạn!