Gấu trúc - Làm sạch các ô trống
Ô trống
Các ô trống có thể cung cấp cho bạn một kết quả sai khi bạn phân tích dữ liệu.
Xóa hàng
Một cách để đối phó với các ô trống là loại bỏ các hàng có chứa các ô trống.
Điều này thường không sao, vì các tập dữ liệu có thể rất lớn và việc loại bỏ một vài hàng sẽ không ảnh hưởng lớn đến kết quả.
Thí dụ
Trả lại Khung dữ liệu mới không có ô trống:
import pandas as pd
df = pd.read_csv('data.csv')
new_df = df.dropna()
print(new_df.to_string())
Trong các ví dụ làm sạch của chúng tôi, chúng tôi sẽ sử dụng tệp CSV có tên 'dirtydata.csv'.
Tải xuống dirtydata.csv . hoặc Mở dirtydata.csv
Lưu ý: Theo mặc định, dropna()
phương thức trả về một DataFrame mới và sẽ không thay đổi bản gốc.
Nếu bạn muốn thay đổi DataFrame ban đầu, hãy sử dụng
inplace = True
đối số:
Thí dụ
Loại bỏ tất cả các hàng có giá trị NULL:
import pandas as pd
df = pd.read_csv('data.csv')
df.dropna(inplace = True)
print(df.to_string())
Lưu ý: Bây giờ, hàm dropna(inplace = True)
sẽ KHÔNG trả về một DataFrame mới, nhưng nó sẽ xóa tất cả các hàng chứa các giá trị NULL khỏi DataFrame ban đầu.
Thay thế các giá trị trống
Một cách khác để xử lý các ô trống là chèn một giá trị mới thay thế.
Bằng cách này, bạn không phải xóa toàn bộ hàng chỉ vì một số ô trống.
Phương fillna()
thức này cho phép chúng tôi thay thế các ô trống bằng một giá trị:
Thí dụ
Thay thế các giá trị NULL bằng số 130:
import pandas as pd
df = pd.read_csv('data.csv')
df.fillna(130, inplace = True)
Chỉ thay thế cho các cột được chỉ định
Ví dụ trên thay thế tất cả các ô trống trong toàn bộ Khung dữ liệu.
Để chỉ thay thế các giá trị trống cho một cột, hãy chỉ định tên cột cho DataFrame:
Thí dụ
Thay thế các giá trị NULL trong cột "Calo" bằng số 130:
import pandas as pd
df = pd.read_csv('data.csv')
df["Calories"].fillna(130, inplace = True)
Được chứng nhận!
$ 10 ĐĂNG KÝ
Thay thế bằng cách sử dụng Trung bình, Trung vị hoặc Chế độ
Một cách phổ biến để thay thế các ô trống là tính giá trị trung bình, giá trị trung bình hoặc chế độ của cột.
Pandas sử dụng các phương thức mean()
median()
và mode()
để tính toán các giá trị tương ứng cho một cột được chỉ định:
Thí dụ
Tính MEAN và thay thế bất kỳ giá trị trống nào bằng nó:
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].mean()
df["Calories"].fillna(x, inplace = True)
Mean = giá trị trung bình (tổng của tất cả các giá trị chia cho số giá trị).
Thí dụ
Tính MEDIAN và thay thế bất kỳ giá trị trống nào bằng nó:
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].median()
df["Calories"].fillna(x, inplace = True)
Median = giá trị ở giữa, sau khi bạn đã sắp xếp tất cả các giá trị tăng dần.
Thí dụ
Tính MODE và thay thế bất kỳ giá trị trống nào bằng nó:
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].mode()[0]
df["Calories"].fillna(x, inplace = True)
Chế độ = giá trị xuất hiện thường xuyên nhất.