Gấu trúc isna()
vs isnull()
.
Tôi giả sử bạn đang đề cập đến pandas.DataFrame.isna()
vs pandas.DataFrame.isnull()
. Không nhầm lẫn với pandas.isnull()
, điều trái ngược với hai điều trên không phải là một phương thức của lớp DataFrame.
Hai phương thức DataFrame này thực hiện chính xác cùng một điều! Ngay cả tài liệu của họ là giống hệt nhau. Bạn thậm chí có thể xác nhận điều này trong mã của gấu trúc .
Nhưng tại sao có hai phương thức với các tên khác nhau làm cùng một việc?
Điều này là do DataFrames của gấu trúc dựa trên DataFrames của R. Trong R na
và null
là hai điều riêng biệt. Đọc bài này để biết thêm thông tin.
Tuy nhiên, trong python, gấu trúc được xây dựng trên đỉnh của numpy, khôngna
null
có giá trị cũng không có . Thay vào đó, numpy có NaN
các giá trị (viết tắt của "Không phải là số"). Do đó, gấu trúc cũng sử dụng NaN
các giá trị.
Nói ngắn gọn
Để phát hiện NaN
các giá trị sử dụng numpy np.isnan()
.
Để phát hiện NaN
giá trị gấu trúc sử dụng .isna()
hoặc .isnull()
.
Các NaN
giá trị được kế thừa từ thực tế là gấu trúc được xây dựng trên đỉnh của numpy, trong khi tên của hai hàm bắt nguồn từ DataFrames của R, mà gấu trúc có cấu trúc và chức năng đã cố gắng bắt chước.