Python NaN: 4 cách kiểm tra giá trị thiếu trong Python
Khám phá 4 cách phát hiện giá trị NaN trong Python bằng NumPy và Pandas. Tìm hiểu khác biệt chính giữa NaN và None để làm sạch và phân tích dữ liệu hiệu quả.
Trong thế giới khoa học dữ liệu và phân tích, việc gặp dữ liệu thiếu là chuyện thường xuyên hơn là ngoại lệ. Giá trị thiếu có thể làm sai lệch phân tích, dẫn đến kết luận không chính xác và nói chung phá vỡ quy trình xử lý dữ liệu. Giải quyết những khoảng trống này là điều then chốt để duy trì tính toàn vẹn của phân tích. Bài viết này nhằm trang bị cho bạn các cách khác nhau để nhận diện các giá trị NaN (Not a Number) trong Python.
Câu trả lời ngắn gọn: Dùng hàm isnan() của NumPy hoặc phương thức .isna() của Pandas
Khi xử lý giá trị thiếu trong Python, cách tiếp cận phụ thuộc nhiều vào cấu trúc dữ liệu mà bạn đang làm việc.
Với giá trị đơn lẻ hoặc mảng: Dùng NumPy
Hàm isnan() của NumPy lý tưởng để nhận diện NaN trong các mảng số hoặc giá trị đơn lẻ, mang đến giải pháp đơn giản và hiệu quả. Dưới đây là ví dụ minh họa!
import numpy as np
# Single value check
my_missing_value = np.nan
print(np.isnan(my_missing_value))# Output: True# Array check
my_missing_array = np.array([1, np.nan,3])
nan_array = np.isnan(my_missing_array)print(nan_array)# Output: [False True False]Được hỗ trợ bởi
Trình soạn thảo Learn-by-Example, nhấn Tab để Vào. Nhấn Escape rồi Tab hoặc Shift+Tab để điều hướng ra ngoài.
Pandas cung cấp các phương thức toàn diện như .isna() và .isnull() để phát hiện giá trị thiếu trên các đối tượng DataFrame hoặc Series, tích hợp trơn tru với quy trình phân tích dữ liệu.
import pandas as pd
import numpy as np
my_dataframe = pd.DataFrame({'Column1':["I","Love", np.nan],'Column2':["Python", np.nan,"The Best"]})print(my_dataframe.isna())# Column1 Column2# 0 False False# 1 False True# 2 True FalseĐược hỗ trợ bởi
Trình soạn thảo Learn-by-Example, nhấn Tab để Vào. Nhấn Escape rồi Tab hoặc Shift+Tab để điều hướng ra ngoài.
Khi bạn chạy đoạn mã này, đầu ra sẽ cho biết sự hiện diện của các giá trị NaN trong một bối cảnh thú vị hơn, như thể hiện ở trên.
Sự khác nhau giữa NaN và None
Hiểu sự khác biệt giữa NaN và None là rất quan trọng trong Python. NaN là biểu diễn số thực cho "Not a Number", chủ yếu dùng trong các tính toán số học. Ngược lại, None là đối tượng của Python đại diện cho việc không có giá trị, tương tự null trong các ngôn ngữ khác. Trong khi NaN được dùng trong các phép toán toán học hoặc khoa học, None mang tính khái quát hơn, chỉ sự thiếu vắng dữ liệu.
4 cách kiểm tra NaN trong Python
Dò tìm giá trị thiếu trong tập dữ liệu là bước quan trọng của tiền xử lý dữ liệu. Hãy khám phá bốn phương pháp thực tiễn để kiểm tra các giá trị NaN trong Python, tiếp nối những ví dụ trực quan mà chúng ta đã dùng.
1. Kiểm tra NaN bằng np.isnan()
Như đã thấy trước đó, NumPy cung cấp cách tiếp cận đơn giản để nhận diện NaN trong cả giá trị đơn và mảng, điều rất cần thiết cho phân tích dữ liệu số.
import numpy as np
# Checking a single valueprint(np.isnan(np.nan))# Output: True# Checking an array
my_array = np.array([1,5, np.nan])print(np.isnan(my_array))# Output: [False False True]Được hỗ trợ bởi
Trình soạn thảo Learn-by-Example, nhấn Tab để Vào. Nhấn Escape rồi Tab hoặc Shift+Tab để điều hướng ra ngoài.
Pandas đơn giản hóa việc phát hiện giá trị NaN trong các cấu trúc dữ liệu, từ scalar đến DataFrame phức tạp, khiến nó trở nên vô giá cho các tác vụ thao tác dữ liệu.
import numpy as np
import pandas as pd
# Checking a single valueprint(pd.isna(np.nan))# Output: True# Checking a pandas Series
my_series = pd.Series(["Python", np.nan,"The Best"])print(my_series.isna())# Output:# 0 False# 1 True# 2 False# Checking a pandas DataFrame
my_dataframe = pd.DataFrame({'Column1':["I","Love", np.nan],'Column2':["Python", np.nan,"The Best"]})print(pd.isna(my_dataframe))# Output a DataFrame with True for missing valuesĐược hỗ trợ bởi
Trình soạn thảo Learn-by-Example, nhấn Tab để Vào. Nhấn Escape rồi Tab hoặc Shift+Tab để điều hướng ra ngoài.
3. Kiểm tra NaN trong DataFrame bằng các phương thức .isna() hoặc .isnull() của Pandas
Các DataFrame của Pandas cũng cung cấp các phương thức .isna() và .isnull() để xác định dễ dàng các giá trị thiếu trên toàn tập dữ liệu, cho cái nhìn rõ ràng về mức độ đầy đủ của dữ liệu.
import numpy as np
import pandas as pd
# Create a dataframe with missing values
my_dataframe = pd.DataFrame({'Column1':["I","Love", np.nan],'Column2':["Python", np.nan,"The Best"]})print(my_dataframe.isna())# Output:# Column1 Column2# 0 False False# 1 False True# 2 True Falseprint(my_dataframe.isnull())# Output:# Column1 Column2# 0 False False# 1 False True# 2 True FalseĐược hỗ trợ bởi
Trình soạn thảo Learn-by-Example, nhấn Tab để Vào. Nhấn Escape rồi Tab hoặc Shift+Tab để điều hướng ra ngoài.
Với các kiểm tra từng số riêng lẻ, hàm math.isnan() mang đến giải pháp đơn giản nhưng hiệu quả, đặc biệt khi làm việc với kiểu dữ liệu thuần Python.
import math
# Assuming my_number is a float or can be converted to one
my_number =float('nan')print(math.isnan(my_number))# Output: TrueĐược hỗ trợ bởi
Trình soạn thảo Learn-by-Example, nhấn Tab để Vào. Nhấn Escape rồi Tab hoặc Shift+Tab để điều hướng ra ngoài.
Nhận diện và xử lý các giá trị NaN là bước nền tảng khi làm sạch và chuẩn bị dữ liệu cho phân tích. Dù bạn đang làm việc với mảng, series hay data frame, việc hiểu các công cụ và phương pháp sẵn có trong Python để xử lý dữ liệu thiếu là điều thiết yếu. Để tìm hiểu thêm, hãy xem các tài nguyên sau:
Adel là một nhà giáo dục Khoa học Dữ liệu, diễn giả, và Phó Chủ tịch phụ trách Truyền thông tại DataCamp. Adel đã phát hành nhiều khóa học và buổi đào tạo trực tiếp về phân tích dữ liệu, học máy và kỹ thuật dữ liệu. Anh đam mê lan tỏa kỹ năng dữ liệu và hiểu biết dữ liệu trong toàn tổ chức, cũng như những điểm giao thoa giữa công nghệ và xã hội. Anh có bằng Thạc sĩ Khoa học Dữ liệu và Phân tích Kinh doanh. Thời gian rảnh, bạn có thể bắt gặp anh vui đùa cùng chú mèo Louis.
Nâng cao kỹ năng về dữ liệu, khám phá cách thao tác và trực quan hóa dữ liệu, đồng thời áp dụng phân tích nâng cao để đưa ra quyết định dựa trên dữ liệu.
Nâng cao kỹ năng chuẩn bị dữ liệu thực tế cần thiết để khám phá những thông tin quan trọng! Khám phá cách nhập, làm sạch và làm việc với API và dữ liệu web.
Trong thế giới khoa học dữ liệu và phân tích, việc gặp dữ liệu thiếu là chuyện thường xuyên hơn là ngoại lệ. Giá trị thiếu có thể làm sai lệch phân tích, dẫn đến kết luận không chính xác và nói chung phá vỡ quy trình xử lý dữ liệu. Giải quyết những khoảng trống này là điều then chốt để duy trì tính toàn vẹn của phân tích. Bài viết này nhằm trang bị cho bạn các cách khác nhau để nhận diện các giá trị NaN (Not a Number) trong Python.
Câu trả lời ngắn gọn: Dùng hàm
isnan()của NumPy hoặc phương thức.isna()của PandasKhi xử lý giá trị thiếu trong Python, cách tiếp cận phụ thuộc nhiều vào cấu trúc dữ liệu mà bạn đang làm việc.
Với giá trị đơn lẻ hoặc mảng: Dùng NumPy
Hàm
isnan()của NumPy lý tưởng để nhận diện NaN trong các mảng số hoặc giá trị đơn lẻ, mang đến giải pháp đơn giản và hiệu quả. Dưới đây là ví dụ minh họa!Với DataFrame: Dùng Pandas
Pandas cung cấp các phương thức toàn diện như
.isna()và.isnull()để phát hiện giá trị thiếu trên các đối tượng DataFrame hoặc Series, tích hợp trơn tru với quy trình phân tích dữ liệu.Khi bạn chạy đoạn mã này, đầu ra sẽ cho biết sự hiện diện của các giá trị NaN trong một bối cảnh thú vị hơn, như thể hiện ở trên.
Sự khác nhau giữa
NaNvàNoneHiểu sự khác biệt giữa
NaNvàNonelà rất quan trọng trong Python.NaNlà biểu diễn số thực cho "Not a Number", chủ yếu dùng trong các tính toán số học. Ngược lại,Nonelà đối tượng của Python đại diện cho việc không có giá trị, tương tự null trong các ngôn ngữ khác. Trong khiNaNđược dùng trong các phép toán toán học hoặc khoa học, None mang tính khái quát hơn, chỉ sự thiếu vắng dữ liệu.4 cách kiểm tra NaN trong Python
Dò tìm giá trị thiếu trong tập dữ liệu là bước quan trọng của tiền xử lý dữ liệu. Hãy khám phá bốn phương pháp thực tiễn để kiểm tra các giá trị
NaNtrong Python, tiếp nối những ví dụ trực quan mà chúng ta đã dùng.1. Kiểm tra NaN bằng np.isnan()
Như đã thấy trước đó, NumPy cung cấp cách tiếp cận đơn giản để nhận diện
NaNtrong cả giá trị đơn và mảng, điều rất cần thiết cho phân tích dữ liệu số.2. Kiểm tra
NaNbằngpd.isna()Pandas đơn giản hóa việc phát hiện giá trị NaN trong các cấu trúc dữ liệu, từ scalar đến DataFrame phức tạp, khiến nó trở nên vô giá cho các tác vụ thao tác dữ liệu.
3. Kiểm tra
NaNtrong DataFrame bằng các phương thức.isna()hoặc.isnull()của PandasCác DataFrame của Pandas cũng cung cấp các phương thức
.isna()và.isnull()để xác định dễ dàng các giá trị thiếu trên toàn tập dữ liệu, cho cái nhìn rõ ràng về mức độ đầy đủ của dữ liệu.4. Kiểm tra
NaNtrong DataFrame bằngmath.isnan()Với các kiểm tra từng số riêng lẻ, hàm
math.isnan()mang đến giải pháp đơn giản nhưng hiệu quả, đặc biệt khi làm việc với kiểu dữ liệu thuần Python.Lời kết và tài nguyên bổ sung
Nhận diện và xử lý các giá trị NaN là bước nền tảng khi làm sạch và chuẩn bị dữ liệu cho phân tích. Dù bạn đang làm việc với mảng, series hay data frame, việc hiểu các công cụ và phương pháp sẵn có trong Python để xử lý dữ liệu thiếu là điều thiết yếu. Để tìm hiểu thêm, hãy xem các tài nguyên sau: