Menu
CoddyTech

Làm sạch dữ liệu: Dữ liệu bị thiếu

Bài học 6 trên 19 trong khóa học Phân tích dữ liệu với pandas của Coddy.

Thông thường, tệp CSV có dữ liệu bị thiếu, tên cột không chính xác, dữ liệu trùng lặp, giá trị không chính xác và kiểu dữ liệu không chính xác. Module Pandas có đầy đủ công cụ để xử lý những vấn đề này.

Dữ liệu bị thiếu

Để kiểm tra một giá trị có bị thiếu hay không:

df.isna()

Để biết mỗi cột có bao nhiêu giá trị bị thiếu:

df.isna().sum()

Hàm (function) isna() chuyển tất cả giá trị thành true hoặc false (có bị thiếu hay không), rồi áp dụng phép tính. sum() sẽ tính true là 1 và false là 0.

Để lặp qua các cột và số lượng giá trị bị thiếu trong từng cột, hãy dùng phương thức items() như với từ điển (dù đây là một đối tượng Series của Pandas):

for column, missing_num in df.isna().sum().items():
	print(column, missing_num)

Để điền tất cả giá trị bị thiếu trong toàn bộ khung dữ liệu, hãy dùng phương thức fillna():

df = df.fillna("some value")

Để chỉ điền giá trị bị thiếu trong một cột, hãy dùng hàm fillna() trên cột đó:

df["some_column"] = df["some_column"].fillna("some value")

Bạn cũng có thể xóa tất cả các hàng có giá trị bị thiếu:

df = df.dropna()
challenge icon

Thử thách

Dễ

Tệp CSV missing.csv có dữ liệu lộn xộn.

Đây là 5 dòng đầu tiên của tệp:

ID,COUNTRY,COLOR,SKILL,SKILL_POINTS,UTILIZATION,IS_VALID
1,France,Signal violet,marksmanship,14,0.1924,1
1,France,Signal violet,marksmanship,14,0.1924,1
2,Solomon Islands,Pearl violet,,4,,1
3,Germany,,calligraphy,12,0.88646,0

Hãy làm sạch dữ liệu:

  • Điền giá trị còn thiếu vào tất cả cột có hơn 2 giá trị còn thiếu bằng giá trị Missing
  • Xóa tất cả các hàng còn lại có giá trị còn thiếu.

Để xem tiến độ, hãy in ra df: print(df)

Lưu kết quả cuối cùng vào biến df.
Đừng in ra df nếu muốn vượt qua test case!

Tự làm thử

# pandas đã được nhập với tên pd
df = pd.read_csv("./missing.csv")
# Viết code bên dưới

Tất cả bài học trong Phân tích dữ liệu với pandas

Tự luyện tập: Trình biên dịch Python online