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 

Tags