Menu
CoddyTech

Giá trị thiếu

Thuộc phần Dữ liệu và biểu đồ trong hành trình Machine Learning của Coddy. Bài học 45 trên 60.

Dữ liệu thực tế có những chỗ thiếu: cảm biến bị hỏng, một bài trắc nghiệm bị bỏ lỡ. pandas đánh dấu mỗi ô trống là NaN, nghĩa là “không phải số”:

Bảng gồm bốn học sinh và hai bài trắc nghiệm, có ba ô trống được đánh dấu NaN: Ben bỏ lỡ quiz1, Cy và Dee bỏ lỡ bài trắc nghiệm thứ hai. Bên dưới là số ô trống được đếm theo từng cột: 0, 1 và 2

Hầu hết các mô hình không chấp nhận NaN, vì vậy hãy đếm các ô trống trước. .isna() đánh dấu từng ô là True, còn .sum() đếm chúng:

scores = pd.DataFrame({
    "name": ["Ana", "Ben", "Cy", "Dee"],
    "quiz1": [8, np.nan, 7, 9],  # np.nan là một giá trị còn thiếu
    "quiz2": [6, 5, np.nan, np.nan],
})
print(scores.isna().sum())

Kết quả in ra:

name     0
quiz1    1
quiz2    2
dtype: int64

Sau đó, hãy chọn: dropna() xóa mọi hàng có ô trống; fillna(0) ghi 0 vào từng ô. Cả hai đều trả về một bảng mới, vì vậy hãy lưu bảng đó.

Thống kê bỏ qua NaN: giá trị trung bình của quiz1 là 8.0, tính từ ba điểm đã biết.

challenge icon

Thử thách

Trung bình

Một thiết bị theo dõi thể dục đã bỏ lỡ một số chỉ số trong tracker.csv. Trước khi tập luyện, hãy xem mỗi cách xử lý các khoảng trống làm thay đổi giá trị trung bình của sleep như thế nào. Mã khởi đầu đọc hours, một giá trị dùng để điền vào.

  1. In ra số khoảng trống trong mỗi cột.
  2. In ra giá trị trung bình của giấc ngủ, làm tròn đến 2 chữ số thập phân, theo ba cách: bỏ qua các khoảng trống, chỉ tính những ngày không có khoảng trống ở bất kỳ cột nào và điền hours vào các khoảng trống.

Với một thiết bị theo dõi khác và 8:

day      0
steps    1
sleep    2
water    0
dtype: int64
Skipping gaps: 6.9
Complete days only: 7.0
Gaps filled with 8.0: 7.21

Tự làm thử

import pandas as pd

tracker = pd.read_csv("tracker.csv")
hours = float(input())

# Viết code bên dưới
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Dữ liệu và biểu đồ

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