Xin chào độc giả. Trong bài viết này, chúng ta sẽ tập trung vào các hàm Python isna[] và Python notna[] một cách chi tiết. Vì vậy, chúng ta hãy bắt đầu
Trong lĩnh vực khoa học dữ liệu và học máy, phân tích và tiền xử lý dữ liệu đóng một vai trò rất quan trọng. Trong toàn bộ quá trình tiền xử lý dữ liệu, phân tích giá trị còn thiếu là một bước quan trọng đối với sự phát triển. Bằng cách phân tích giá trị bị thiếu, chúng tôi muốn nói quá trình phát hiện và loại bỏ các giá trị bị thiếu hoặc NA khỏi dữ liệu nguồn
Tương tự, có nhiều cách để phát hiện sự hiện diện của các giá trị bị thiếu trong tập dữ liệu. Hôm nay, chúng ta sẽ xem xét hai chức năng dễ sử dụng để phát hiện sự hiện diện của các giá trị bị thiếu–
- Hàm isna[] trong Python
- Hàm notna[] trong Python
Trong quá trình thực hiện chủ đề này, chúng tôi sẽ sử dụng bộ dữ liệu Dự đoán cho thuê xe đạp. Bạn có thể tìm thấy tập dữ liệu ở đây. Bây giờ chúng ta hãy xem xét từng cái một trong phần bên dưới
1. Hàm isna[] trong Python
Với hàm isna[] trong Python, chúng ta có thể dễ dàng phát hiện sự có mặt của giá trị NULL hoặc NA i. e. các giá trị còn thiếu trong tập dữ liệu. Đây là một hàm boolean tìm kiếm các giá trị bị thiếu và trả về TRUE khi nó phát hiện một giá trị bị thiếu
Hãy xem cú pháp dưới đây
dataframe.isna[]
Thí dụ
Trong ví dụ này, chúng tôi đã sử dụng hàm isna[] để kiểm tra sự hiện diện của các giá trị bị thiếu. Vì, dữ liệu không có các giá trị bị thiếu, nên nó trả về FALSE
import pandas import os #Changing the current working directory os.chdir["D:/Ediwsor_Project - Bike_Rental_Count"] BIKE = pandas.read_csv["day.csv"] BIKE.isna[]
đầu ra
2. Hàm notna[] trong Python
Với hàm notna[] trong Python, chúng ta có thể dễ dàng chọn ra những dữ liệu không chiếm giá trị thiếu hoặc giá trị NA. Hàm notna[] trả về TRUE, nếu dữ liệu không có giá trị bị thiếu, ngược lại, nó trả về FALSE [nếu gặp giá trị NA]
cú pháp
dataframe.notna[]
Thí dụ
Như đã chứng kiến ở trên, tập dữ liệu không có giá trị NA. Do đó, hàm notna[] trả về TRUE
import pandas import os #Changing the current working directory os.chdir["D:/Ediwsor_Project - Bike_Rental_Count"] BIKE = pandas.read_csv["day.csv"] BIKE.notna[]
đầu ra
Phần kết luận
Vui lòng bình luận bên dưới nếu bạn gặp bất kỳ câu hỏi nào. Tóm lại, với các hàm isna[] và notna[] của Python, chúng ta có thể nhanh chóng kiểm tra sự hiện diện của các giá trị bị thiếu, đặc biệt là với các bộ dữ liệu khổng lồ. Và chúng ta có thể dễ dàng lập kế hoạch khắc phục cần thiết để xử lý các giá trị còn thiếu
Để biết thêm các bài viết như vậy liên quan đến Lập trình Python, hãy theo dõi chúng tôi. Cho đến lúc đó, học tập vui vẻ. 🙂
Tôi sẽ mô tả chức năng của kỹ thuật này, giải thích cú pháp và tôi sẽ chỉ cho bạn các ví dụ rõ ràng về cách sử dụng nó
Nếu bạn cần tìm hiểu điều gì đó cụ thể, chỉ cần nhấp vào một trong các liên kết này
Mục lục
Hãy bắt đầu với phần giới thiệu nhanh về kỹ thuật
import pandas as pd import numpy as np1
Giới thiệu nhanh về Pandas isna
Phương thức isna của Pandas phát hiện các giá trị bị thiếu trong khung dữ liệu Python hoặc Sê-ri Pandas
Như đã đề xuất ở trên, chúng ta có thể sử dụng Pandas isna trên một số cấu trúc dữ liệu khác nhau, bao gồm
- Dòng gấu trúc
- khung dữ liệu gấu trúc
- các cột riêng lẻ trong một khung dữ liệu
Vì vậy, theo nghĩa đó, phương pháp này linh hoạt về cách chúng ta sử dụng nó
Pandas isna rất quan trọng đối với việc sắp xếp dữ liệu Python
Phương thức isna rất quan trọng đối với việc sắp xếp dữ liệu trong Python
Xử lý các giá trị bị thiếu là một vấn đề rất phổ biến khi chúng ta sắp xếp dữ liệu, cũng như khi chúng ta phân tích dữ liệu hoặc tạo mô hình máy học
Trên thực tế, tìm và xử lý các giá trị bị thiếu là một trong những điều đầu tiên bạn sẽ làm khi sắp xếp hoặc phân tích tập dữ liệu
Trong trường hợp đó, bạn cần một cách để xác định các giá trị còn thiếu khi làm việc với dữ liệu Python của mình
Nhập, Pandas isna
Cú pháp của isna
Hãy xem cú pháp của kỹ thuật
import pandas as pd import numpy as np1
Ở đây, chúng ta sẽ xem xét riêng cú pháp cho các cấu trúc dữ liệu Python sau
- khung dữ liệu
- Loạt
- cột khung dữ liệu
Lý do là cú pháp của Pandas isna sẽ hơi khác đối với từng loại đối tượng
Một lưu ý nhanh
Trước khi xem cú pháp, tôi muốn nhắc bạn một vài điều
Đầu tiên, các giải thích cú pháp bên dưới giả định rằng bạn đã cài đặt Pandas và nhập nó vào môi trường của mình
Giả sử rằng bạn đã cài đặt nó trên máy tính của mình, bạn có thể nhập Pandas bằng mã này
import pandas as pd
Thứ hai, các giải thích cú pháp bên dưới giả định rằng bạn có sẵn khung dữ liệu Pandas hoặc đối tượng Pandas Series
Để tìm hiểu thêm về khung dữ liệu Pandas, hãy đọc hướng dẫn về khung dữ liệu Pandas của chúng tôi
Với tất cả những gì đã nói, hãy xem cú pháp
Cú pháp sê-ri
Trước tiên, chúng ta sẽ xem xét cú pháp về cách sử dụng
import pandas as pd import numpy as np1 trên Chuỗi Pandas đơn độc
Khi bạn sử dụng isna trên Sê-ri, trước tiên bạn chỉ cần nhập tên của đối tượng Sê-ri [i. e. , tên mà bạn đã gán cho nó]
Sau đó, bạn chỉ cần gõ
import pandas as pd import numpy as np4 để gọi phương thức, giống như cách bạn gọi bất kỳ phương thức nào khác trên Python
Thats tất cả để có nó
Khi bạn thực hiện việc này, phương thức sẽ tạo ra một Chuỗi giá trị boolean Đúng/Sai mới, sẽ hiển thị giá trị nào bị thiếu trong Chuỗi ban đầu
cú pháp khung dữ liệu
Tiếp theo, hãy xem cách sử dụng isna trên khung dữ liệu
Cú pháp cho các khung dữ liệu này rất giống với cú pháp ở trên cho Pandas Series
Trước tiên, bạn chỉ cần nhập tên của khung dữ liệu bạn muốn thao tác trên đó
Sau đó, bạn gõ
import pandas as pd import numpy as np4 để gọi phương thức
Vì vậy, nếu khung dữ liệu của bạn được đặt tên là
import pandas as pd import numpy as np6, bạn sẽ nhập mã
import pandas as pd import numpy as np7
Đầu ra của thao tác này sẽ là một đối tượng có cùng kích thước với khung dữ liệu đầu vào của bạn. Đầu ra này sẽ chứa các giá trị Đúng/Sai cho biết giá trị khung dữ liệu nào bị thiếu trong bản gốc
cú pháp cột
Cuối cùng, chúng ta sẽ xem xét cú pháp về cách sử dụng Pandas isna trên một cột của khung dữ liệu
Điều quan trọng cần nhớ ở đây là các cột riêng lẻ bên trong khung dữ liệu thực sự là các đối tượng chuỗi Pandas. Vì vậy, nếu chúng tôi truy xuất một cột bằng "cú pháp dấu chấm", thì chúng tôi có thể sử dụng cú pháp trên cho Pandas Series
Hãy xem cách thức hoạt động của nó
Trước tiên, bạn có thể nhập tên của khung dữ liệu
Sau đó, bạn sử dụng “cú pháp dấu chấm” để chỉ định cột riêng lẻ bên trong khung dữ liệu mà bạn muốn thao tác trên đó
Vì vậy, việc áp dụng Pandas
import pandas as pd import numpy as np4 vào cột khung dữ liệu bao gồm hai bước
- lấy cột từ khung dữ liệu bằng "cú pháp dấu chấm"
- sử dụng phương pháp
import pandas as pd import numpy as np
4
Vì vậy, ví dụ: nếu bạn có một khung dữ liệu có tên là
import pandas as pd import numpy as np6 chứa một cột có tên là
sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"] ,"region":["East",np.nan,"East","South","West","West","South","West","West","East","South"] ,"sales":[50000,52000,90000,np.nan,42000,72000,49000,np.nan,67000,65000,67000] ,"expenses":[42000,43000,np.nan,44000,38000,39000,42000,np.nan,39000,44000,45000]}]1, thì bạn sẽ sử dụng cú pháp
sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"] ,"region":["East",np.nan,"East","South","West","West","South","West","West","East","South"] ,"sales":[50000,52000,90000,np.nan,42000,72000,49000,np.nan,67000,65000,67000] ,"expenses":[42000,43000,np.nan,44000,38000,39000,42000,np.nan,39000,44000,45000]}]2 để tìm các giá trị còn thiếu trong cột cụ thể đó
Đầu ra [ghi chú thêm]
Rất nhanh, hãy nói về cấu trúc và nội dung của đầu ra
Như tôi đã đề cập ở trên, đầu ra của
import pandas as pd import numpy as np4 là một đối tượng Pandas mới có cùng kích thước với đối tượng đầu vào
Đối tượng mới này sẽ chứa các giá trị Đúng/Sai cho biết giá trị nào bị thiếu [
sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"] ,"region":["East",np.nan,"East","South","West","West","South","West","West","East","South"] ,"sales":[50000,52000,90000,np.nan,42000,72000,49000,np.nan,67000,65000,67000] ,"expenses":[42000,43000,np.nan,44000,38000,39000,42000,np.nan,39000,44000,45000]}]4 có nghĩa là thiếu]
Các loại giá trị mà
import pandas as pd import numpy as np4 sẽ coi là "thiếu" là
sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"] ,"region":["East",np.nan,"East","South","West","West","South","West","West","East","South"] ,"sales":[50000,52000,90000,np.nan,42000,72000,49000,np.nan,67000,65000,67000] ,"expenses":[42000,43000,np.nan,44000,38000,39000,42000,np.nan,39000,44000,45000]}]
6sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"] ,"region":["East",np.nan,"East","South","West","West","South","West","West","East","South"] ,"sales":[50000,52000,90000,np.nan,42000,72000,49000,np.nan,67000,65000,67000] ,"expenses":[42000,43000,np.nan,44000,38000,39000,42000,np.nan,39000,44000,45000]}]
7
Vì vậy, các chuỗi rỗng [i. e. ,
sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"] ,"region":["East",np.nan,"East","South","West","West","South","West","West","East","South"] ,"sales":[50000,52000,90000,np.nan,42000,72000,49000,np.nan,67000,65000,67000] ,"expenses":[42000,43000,np.nan,44000,38000,39000,42000,np.nan,39000,44000,45000]}]8] hoặc
sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"] ,"region":["East",np.nan,"East","South","West","West","South","West","West","East","South"] ,"sales":[50000,52000,90000,np.nan,42000,72000,49000,np.nan,67000,65000,67000] ,"expenses":[42000,43000,np.nan,44000,38000,39000,42000,np.nan,39000,44000,45000]}]9, sẽ không được tính là giá trị thiếu;
ví dụ. cách phát hiện các giá trị bị thiếu trong Python
Bây giờ chúng ta đã xem xong cú pháp, hãy xem một số ví dụ về Pandas
print[sales_data]2
ví dụ
Chạy mã này trước
Trước khi chúng tôi chạy các ví dụ này, có một chút thiết lập sơ bộ mà bạn sẽ cần chạy
Cụ thể, bạn sẽ cần phải
- nhập Pandas và Numpy
- tạo một khung dữ liệu
Hãy làm từng cái một
tải gấu trúc
Đầu tiên, chúng ta cần nhập Pandas và Numpy
import pandas as pd import numpy as np
Chúng tôi sẽ sử dụng Pandas để tạo khung dữ liệu và chúng tôi sẽ sử dụng Numpy để tạo các giá trị còn thiếu bên trong khung dữ liệu đó bằng cách sử dụng
print[sales_data]3
Tạo một khung dữ liệu
Tiếp theo, chúng ta cần tạo một khung dữ liệu mà chúng ta có thể làm việc với
Ở đây, chúng tôi sẽ tạo một khung dữ liệu chứa dữ liệu bán hàng giả
sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"] ,"region":["East",np.nan,"East","South","West","West","South","West","West","East","South"] ,"sales":[50000,52000,90000,np.nan,42000,72000,49000,np.nan,67000,65000,67000] ,"expenses":[42000,43000,np.nan,44000,38000,39000,42000,np.nan,39000,44000,45000]}]
Hãy in khung dữ liệu để xem nội dung của nó
print[sales_data]
NGOÀI
name region sales expenses 0 William East 50000.0 42000.0 1 Emma NaN 52000.0 43000.0 2 Sofia East 90000.0 NaN 3 Markus South NaN 44000.0 4 Edward West 42000.0 38000.0 5 Thomas West 72000.0 39000.0 6 Ethan South 49000.0 42000.0 7 Olivia West NaN NaN 8 Arun West 67000.0 39000.0 9 Anika East 65000.0 44000.0 10 Paulo South 67000.0 45000.0
Khung dữ liệu này,
print[sales_data]4, có bốn biến. Hai trong số các biến chứa dữ liệu ký tự và hai trong số các biến chứa dữ liệu số
Quan trọng là bạn sẽ nhận thấy rằng một số giá trị bị thiếu [i. e. ,
print[sales_data]5]
Chúng tôi sẽ sử dụng
import pandas as pd import numpy as np4 để phát hiện những giá trị còn thiếu đó
VÍ DỤ 1. Xác định các giá trị còn thiếu trong cột khung dữ liệu
Trước tiên, chúng tôi sẽ xác định các giá trị còn thiếu trong một cột cụ thể
Chúng tôi sẽ xác định các giá trị còn thiếu trong cột
print[sales_data]7 của khung dữ liệu
sales_data.sales.isna[]
NGOÀI
0 False 1 False 2 False 3 True 4 False 5 False 6 False 7 True 8 False 9 False 10 FalseGiải trình
Ở đây, chúng tôi đã xác định các giá trị còn thiếu trong cột
print[sales_data]7 của khung dữ liệu
print[sales_data]4
Điều này bao gồm 2 bước
- chúng tôi đã truy xuất cột
print[sales_data]
7 bằng cách sử dụng “cú pháp dấu chấm” - sau đó, chúng tôi đã gọi
import pandas as pd import numpy as np
4 để xác định các giá trị còn thiếu trong cột đó
Vì vậy,
name region sales expenses 0 William East 50000.0 42000.0 1 Emma NaN 52000.0 43000.0 2 Sofia East 90000.0 NaN 3 Markus South NaN 44000.0 4 Edward West 42000.0 38000.0 5 Thomas West 72000.0 39000.0 6 Ethan South 49000.0 42000.0 7 Olivia West NaN NaN 8 Arun West 67000.0 39000.0 9 Anika East 65000.0 44000.0 10 Paulo South 67000.0 45000.02 đã lấy cột
print[sales_data]7 từ khung dữ liệu
Và, cú pháp
import pandas as pd import numpy as np4 đã xác định các giá trị còn thiếu
Lưu ý rằng đầu ra của mã này là một đối tượng mới có hình dạng giống như cột
print[sales_data]7. Cũng lưu ý rằng nếu giá trị bị thiếu trong cột
print[sales_data]7, kết quả sẽ hiển thị
sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"] ,"region":["East",np.nan,"East","South","West","West","South","West","West","East","South"] ,"sales":[50000,52000,90000,np.nan,42000,72000,49000,np.nan,67000,65000,67000] ,"expenses":[42000,43000,np.nan,44000,38000,39000,42000,np.nan,39000,44000,45000]}]4. Nếu không, đầu ra hiển thị
print[sales_data]1
VÍ DỤ 2. Xác định các giá trị còn thiếu trong toàn bộ khung dữ liệu
Tiếp theo, chúng ta sẽ tìm các giá trị còn thiếu trong toàn bộ khung dữ liệu
Để thực hiện việc này, chúng tôi sẽ nhập tên của khung dữ liệu, sau đó gọi
import pandas as pd import numpy as np4
sales_data.isna[]
NGOÀI
name region sales expenses 0 False False False False 1 False True False False 2 False False False True 3 False False True False 4 False False False False 5 False False False False 6 False False False False 7 False False True True 8 False False False False 9 False False False False 10 False False False FalseGiải trình
Điều này nên dễ hiểu
Ở đây, chúng tôi đã gọi phương thức
import pandas as pd import numpy as np4 trên toàn bộ khung dữ liệu
print[sales_data]7
Để làm điều này, chúng tôi chỉ cần nhập tên của khung dữ liệu, sau đó nhập
import pandas as pd import numpy as np4 để gọi phương thức
Ở đầu ra, bạn sẽ nhận thấy các giá trị boolean True/False cho mọi giá trị của đầu vào. Đầu ra hiển thị
sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"] ,"region":["East",np.nan,"East","South","West","West","South","West","West","East","South"] ,"sales":[50000,52000,90000,np.nan,42000,72000,49000,np.nan,67000,65000,67000] ,"expenses":[42000,43000,np.nan,44000,38000,39000,42000,np.nan,39000,44000,45000]}]4 trong đó giá trị bị thiếu trong khung dữ liệu
print[sales_data]7 và đầu ra hiển thị
print[sales_data]1 nếu không
VÍ DỤ 3. Đếm các giá trị còn thiếu trong mỗi cột của khung dữ liệu
Cuối cùng, hãy đếm các giá trị còn thiếu trong mỗi cột của khung dữ liệu của chúng tôi
Để thực hiện điều này, chúng tôi sẽ sử dụng hai phương pháp Pandas
- gấu trúc isna
- gấu trúc sum
Chúng tôi sẽ sử dụng isna để xác định các giá trị còn thiếu và chúng tôi sẽ sử dụng Pandas sum để đếm chúng
[sales_data .isna[] .sum[] ]
NGOÀI
import pandas as pd import numpy as np0Giải trình
Xem kỹ đầu ra. Đầu ra hiển thị số lượng các giá trị còn thiếu cho mỗi cột của khung dữ liệu đầu vào
Để thực hiện điều này, chúng ta cần gọi hai phương thức Pandas, lần lượt từng phương thức
Đầu tiên, chúng tôi gọi phương pháp
import pandas as pd import numpy as np4, phương pháp xác định các giá trị còn thiếu
Sau đó, chúng tôi gọi
sales_data.sales.isna[]7 để đếm chúng
Ngoài ra, lưu ý rằng chúng tôi đã sử dụng một thủ thuật cú pháp đặc biệt. Chúng tôi đã đặt toàn bộ chuỗi phương thức bên trong dấu ngoặc đơn. Và, chúng tôi đặt các phương pháp khác nhau trên các dòng khác nhau
Đôi khi tôi gọi điều này là , mặc dù hãy nhớ rằng bạn có thể sử dụng điều này cho hầu hết mọi loại phương thức Python
Đây là một kỹ thuật hơi khác thường, nhưng cực kỳ hiệu quả khi bạn thực hiện sắp xếp dữ liệu hoặc phân tích dữ liệu. Nếu bạn biết cách sử dụng kỹ thuật này đúng cách, bạn có thể xâu chuỗi nhiều phương thức lại với nhau [nhiều hơn 2] để thực hiện các thao tác dữ liệu phức tạp. Nó cũng giúp đọc và gỡ lỗi mã của bạn dễ dàng hơn
Đây là một trong những bí mật để thành thạo Pandas và bạn thực sự nên học nó
Câu hỏi thường gặp về Pandas isna
Bây giờ bạn đã tìm hiểu về Pandas isna và xem một số ví dụ, hãy xem lại một số câu hỏi thường gặp về phương pháp này
Các câu hỏi thường gặp
Câu hỏi 1. Sự khác biệt giữa Pandas isna và isnull là gì?
Về cơ bản, không có sự khác biệt
Pandas isna và Pandas isnull làm điều tương tự và hoạt động theo cùng một cách
Pandas
sales_data.sales.isna[]8 thực sự chỉ là bí danh của Pandas
import pandas as pd import numpy as np4
Tôi khuyên bạn chỉ nên chọn một trong hai phiên bản và sử dụng nó một cách nhất quán trong mã của bạn
Để lại câu hỏi khác của bạn trong các ý kiến dưới đâyBạn có câu hỏi nào khác về kỹ thuật Pandas isna không?
Có điều gì mà tôi chưa trình bày ở đây mà bạn cần trợ giúp không?
Nếu vậy, hãy để lại câu hỏi của bạn trong phần bình luận bên dưới
Để tìm hiểu thêm về Pandas, hãy đăng ký danh sách email của chúng tôi
Hướng dẫn này lẽ ra đã cung cấp cho bạn phần giới thiệu tốt về kỹ thuật Pandas isna, nhưng nếu bạn thực sự muốn thành thạo việc sắp xếp dữ liệu của Pandas, thì bạn sẽ cần tìm hiểu thêm nhiều điều nữa
Vì vậy, nếu bạn muốn tìm hiểu thêm về sắp xếp dữ liệu Python và tìm hiểu thêm về khoa học dữ liệu Python nói chung, thì hãy đăng ký nhận bản tin email của chúng tôi