Làm sạch dữ liệu với Python

Các ô chứa dữ liệu bị sai hay sai định dạng có thể gây khó khăn hoặc thậm chí là không thể phân tích dữ liệu. Để khắc phục vấn đề này, ta có hai lựa chọn: 

  1. Xóa bỏ các hàng: Phương pháp này loại bỏ các hàng chứa các ô sai định dạng. Nhược điểm là có thể làm mất mát thông tin, đặc biệt khi tỷ lệ dữ liệu thiếu cao.
  2. Chuyển đổi tất cả các ô trong cột thành cùng một định dạng: Phương pháp này đảm bảo tính thống nhất cho dữ liệu, giúp việc phân tích dễ dàng hơn. Bạn có thể áp dụng các hàm chuyển đổi định dạng phù hợp cho từng loại dữ liệu (số, ngày tháng, văn bản,…)

1. Xử lý dữ liệu bị sai định dạng

Trong DataFrame của chúng ta, có hai ô ở định dạng không chính xác. Ở hàng 22 và 26, cột ‘Date’ (Ngày) cần chứa chuỗi ký tự thể hiện ngày tháng. 

171

Để chuyển đổi tất cả dữ liệu ở cột ‘Date’ sang định dạng ngày tháng, chúng ta dùng hàm datetime như sau:  

import pandas as pd 
 
df = pd.read_csv(‘data.csv’) # Với data.csv là tên bộ dữ liệu 
 
df[‘Date’] = pd.to_datetime(df[‘Date’]) 
 
print(df) 

172

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

Trong ví dụ trên, kết quả từ việc chuyển đổi trả về giá trị NaT. NaT có thể được coi như giá trị NULL và chúng ta có thể loại bỏ hàng chứa giá trị NaT này bằng lệnh dropna(). 

df.dropna(subset=[‘Date’], inplace = True) 

print(df) 

173

3. Sửa dữ liệu trong một cột

Đôi khi ta có thể phát hiện ra dữ liệu bất thường chỉ bằng cách nhìn vào tập dữ liệu, 

Ví dụ, trong tập dữ liệu của chúng ta, ở dòng thứ 7, thời lượng bài tập là 450 phút, trong khi tất cả các dòng khác thời lượng chỉ nằm trong khoảng từ 30 đến 60 phút. 

Mặc dù không chắc chắn là sai, nhưng vì đây là tập dữ liệu về các buổi tập luyện của một người, chúng ta có thể kết luận rằng người này không có khả năng tập luyện trong 450 phút.

174

3.1 Thay thế dữ liệu 

Một cách để xử lý các giá trị không chính xác là thay thế chúng bằng một giá trị khác. Trong ví dụ của chúng ta, rất có thể đây là lỗi đánh máy và giá trị đáng lẽ phải là “45”. Ta sửa lỗi này như sau: 

df.loc[7, ‘Duration’] = 45 # Thay đổi dữ liệu ở hàng số 7, cột ‘Duration’ 

Đối với các tập dữ liệu nhỏ, bạn có thể thay thế từng giá trị không chính xác một cách thủ công. Tuy nhiên, điều này không thực tế với các tập dữ liệu lớn. 

Để thay thế dữ liệu không chính xác trong tập dữ liệu lớn, bạn có thể tạo ra một số quy tắc. Ví dụ, bạn có thể thiết lập các giới hạn cho các giá trị hợp lệ và thay thế bất kỳ giá trị nào nằm ngoài các khoảng này. 

Ví dụ: Chúng ta sẽ sử dụng vòng lặp để thay thế các giá trị trong cột “Duration”: 

for x in dữ liệu ex:  # Lặp qua tất cả các chỉ mục của DataFrame 
  if df.loc[x, “Duration”] > 120:  # Kiểm tra nếu giá trị tại chỉ mục x, cột “Duration” lớn hơn 120 
    df.loc[x, “Duration”] = 120  # Nếu đúng, gán 120 cho giá trị đó 

 

3.2 Xóa dữ liệu 

Một cách khác để xử lý dữ liệu không chính xác là loại bỏ các hàng chứa dữ liệu sai. 

Bằng cách này, bạn không cần phải tìm giá trị thay thế và rất có thể bạn không cần những giá trị đó cho phân tích của mình. 

Ví dụ: Chúng ta sẽ xóa các hàng trong cột “Duration” có giá trị lớn hơn 120: 

for x in df.index:  # Lặp qua tất cả các chỉ mục của DataFrame 
  if df.loc[x, “Duration”] > 120:  # Kiểm tra nếu giá trị tại chỉ mục x, cột “Duration” lớn hơn 120 
    df.drop(x, inplace=True)  # Xóa bỏ hàng đó (inplace=True để thay đổi trên DataFrame gốc) 

Xem thêm:

[Free download] Python for Data Analysis

Cách tạo PivotChart trong Microsoft Excel

Các hàm Pandas thông dụng dành cho Data Analyst (Phần 1)

Khóa học Xử lý và Trực quan hóa dữ liệu với Python 

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

1 + 1 = ? (Nhập Haii để trả lời đúng)

Bài viết liên quan
Khám Phá Tính Năng Nhóm và Phân Nhóm Dữ Liệu trong Power BI

Trong quá trình xây dựng biểu đồ, Power BI Desktop sẽ tự động tổng hợp dữ liệu thành các nhóm dựa trên các giá trị có trong tập dữ liệu gốc.

Xem thêm
[RECAP] Chuỗi Workshop MARKET-A – CLB Chứng khoán SCUE – Đại học Kinh tế TP. HCM (UEH)

Chiều ngày 15/05/2025 vừa rồi, UniTrain đã hân hạnh có mặt với vai trò là Nhà tài trợ Bạc tại buổi Workshop 2: OPTIVEST thuộc chuỗi chương trình Workshop MARKET-A do

Xem thêm
[RECAP] Cuộc thi Chuyên gia Phân tích Đầu Tư – IAE mùa 6, năm 2025 – Nhóm Sinh viên Nghiên cứu Tài chính (SFR) – Đại học Kinh tế TP. HCM (UEH)

Tối ngày 14/05/2025 vừa rồi, chung kết cuộc thi Chuyên gia Phân tích Đầu Tư – IAE mùa 6, năm 2025 do nhóm Sinh viên Nghiên cứu Tài chính (SFR) thuộc

Xem thêm
[In-house Training] CÔNG TY TNHH MSC VIỆT NAM hợp tác cùng UNITRAIN tổ chức chương trình đào tạo POWER QUERY & POWER PIVOT

Nhận thấy trong thời đại hiện nay, mọi quyết định kinh doanh thành công đều được đưa ra dựa trên big-data, và kỹ năng làm việc với dữ liệu đang trở

Xem thêm