Trong bài đăng này, chúng ta sẽ xem làm cách nào chúng ta có thể nhận được số lượng giá trị bị thiếu trong mỗi cột của khung dữ liệu Pandas. Xử lý các giá trị bị thiếu là một trong những nhiệm vụ phổ biến khi thực hiện phân tích dữ liệu với dữ liệu thực. Hiểu nhanh về số lượng giá trị còn thiếu sẽ giúp quyết định bước tiếp theo của phân tích
Chúng tôi sẽ sử dụng hàm isna[] của Pandas để tìm xem một phần tử trong khung dữ liệu Pandas có bị thiếu giá trị hay không và sau đó sử dụng kết quả để nhận số lượng giá trị bị thiếu trong khung dữ liệu
Trước tiên chúng ta hãy tải các thư viện cần thiết
import pandas as pd import seaborn as sns
Chúng tôi sẽ sử dụng dữ liệu Palmer Penguins để đếm các giá trị còn thiếu trong mỗi cột. Phiên bản mới nhất của Seaborn có bộ dữ liệu chim cánh cụt Palmer và chúng tôi sẽ sử dụng bộ dữ liệu đó
penguins = sns.load_dataset["penguins"]
Đây là cách dữ liệu Penguins trông như thế nào và chúng ta có thể thấy một số giá trị bị thiếu được biểu thị dưới dạng NaN trong khung dữ liệu
penguins.head[] species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g sex 0 Adelie Torgersen 39.1 18.7 181.0 3750.0 Male 1 Adelie Torgersen 39.5 17.4 186.0 3800.0 Female 2 Adelie Torgersen 40.3 18.0 195.0 3250.0 Female 3 Adelie Torgersen NaN NaN NaN NaN NaN 4 Adelie Torgersen 36.7 19.3 193.0 3450.0 Female
Chúng ta có thể sử dụng hàm Pandas isna[] để tìm xem mỗi phần tử của khung dữ liệu có thiếu giá trị hay không
penguins.isna[]
Khi được áp dụng cho một khung dữ liệu, hàm Pandas isna[] trả về khung dữ liệu boolean với True với phần tử bị thiếu giá trị và Sai khi nó không phải là giá trị bị thiếu
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g sex 0 False False False False False False False 1 False False False False False False False 2 False False False False False False False 3 False False True True True True True 4 False False False False False False False
Chúng ta có thể sử dụng hàm sum[] của Pandas để lấy số lượng giá trị bị thiếu trên mỗi cột trong khung dữ liệu
penguins.isna[].sum[]
Theo mặc định, Pandas sum[] thêm vào các cột. Và chúng tôi nhận được một khung dữ liệu với số lượng giá trị bị thiếu cho mỗi cột
species 0 island 0 bill_length_mm 2 bill_depth_mm 2 flipper_length_mm 2 body_mass_g 2 sex 11 dtype: int64
Khi bạn có khung dữ liệu lớn hơn, chúng ta có thể nhanh chóng tạo biểu đồ thanh bằng cách sử dụng biểu đồ của Pandas. hàm bar để hiểu các giá trị bị thiếu. Chúng tôi sử dụng toán tử dấu chấm để xâu chuỗi các kết quả của isna[]. sum[] thành reset_index[] để đặt tên cho cột kết quả và sử dụng biểu đồ. thanh để tạo biểu đồ thanh nhanh
Nhiều lần chúng tôi tạo DataFrame từ tập dữ liệu hiện có và nó có thể chứa một số giá trị bị thiếu trong bất kỳ cột hoặc hàng nào. Đối với mỗi giá trị còn thiếu, Pandas thêm NaN vào vị trí của nó
Hãy tạo một khung dữ liệu với các giá trị bị thiếu i. e
# List of Tuples students = [ ['jack', np.NaN, 'Sydeny' , 'Australia'] , ['Riti', np.NaN, 'Delhi' , 'India' ] , ['Vikas', 31, np.NaN , 'India' ] , ['Neelu', 32, 'Bangalore' , 'India' ] , ['John', 16, 'New York' , 'US'] , ['John' , 11, np.NaN, np.NaN ] , [np.NaN , np.NaN, np.NaN, np.NaN ] ] #Create a DataFrame object dfObj = pd.DataFrame[students, columns = ['Name' , 'Age', 'City' , 'Country']]
Nội dung của khung dữ liệu là,
Name Age City Country 0 jack NaN Sydeny Australia 1 Riti NaN Delhi India 2 Vikas 31 NaN India 3 Neelu 32 Bangalore India 4 John 16 New York US 5 John 11 NaN NaN 6 NaN NaN NaN NaN
khung dữ liệu. isnull[]
Bây giờ, hãy đếm số lượng NaN trong khung dữ liệu này bằng cách sử dụng khung dữ liệu. isnull[]
Pandas Dataframe cung cấp một hàm isnull[], nó trả về một khung dữ liệu mới có cùng kích thước với khung dữ liệu đang gọi, nó chỉ chứa True & False mà thôi. Với True ở vị trí NaN trong khung dữ liệu gốc và Sai ở những nơi khác. Hãy gọi chức năng này trên khung dữ liệu trên dfObj i. e
dfObj.isnull[]
Nó sẽ trả về một DataFrame mới với dữ liệu Đúng & Sai i. e.
______10
Điều này chứa True tại vị trí NaN trong dfObj và False tại các vị trí khác. Chúng tôi sẽ sử dụng khung dữ liệu này để tính tổng NaN trong khung dữ liệu gốc dfObj.
Đếm tất cả NaN trong DataFrame [cả cột và hàng]
penguins = sns.load_dataset["penguins"]1
Việc gọi sum[] của DataFrame được trả về bởi isnull[] sẽ cho biết tổng số NaN trong khung dữ liệu i. e.
______12
Bây giờ, giả sử chúng ta muốn đếm riêng NaN trong từng cột, hãy làm điều đó.
Đếm tổng số NaN tại mỗi cột trong DataFrame
penguins = sns.load_dataset["penguins"]3
Việc gọi sum[] của DataFrame được trả về bởi isnull[] sẽ cung cấp một chuỗi chứa dữ liệu về số lượng NaN trong mỗi cột i. e.
______14
Đếm tổng số NaN tại mỗi hàng trong DataFrame
Để đếm tổng số NaN trong mỗi hàng trong khung dữ liệu, chúng ta cần lặp lại từng hàng trong khung dữ liệu và gọi sum[] trên đó i. e
penguins = sns.load_dataset["penguins"]5
Đầu ra của nó sẽ là,
penguins = sns.load_dataset["penguins"]6
Ví dụ đầy đủ như sau,
Name Age City Country 0 jack NaN Sydeny Australia 1 Riti NaN Delhi India 2 Vikas 31 NaN India 3 Neelu 32 Bangalore India 4 John 16 New York US 5 John 11 NaN NaN 6 NaN NaN NaN NaN0
Output:
______81
Quảng cáo
Cảm ơn bạn đã đọc.