Sự khác biệt giữa isna () và isnull () trong gấu trúc


70

Tôi đã sử dụng gấu trúc khá lâu. Nhưng, tôi không hiểu sự khác biệt giữa isna()isnull()trong gấu trúc. Và, quan trọng hơn, cái nào sẽ được sử dụng để xác định các giá trị bị thiếu trong khung dữ liệu.

Sự khác biệt cơ bản cơ bản về cách phát hiện một giá trị là một trong hai nahoặc là nullgì?


1
Hai chức năng là như nhau. Cả hai đều đưa ra các giá trị còn thiếu.
Ankit Seth

Câu trả lời:


91

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 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 nanulllà 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ôngnanull có giá trị cũng không có . Thay vào đó, numpy có NaNcá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 NaNcác giá trị.

Nói ngắn gọn

  • Để phát hiện NaNcác giá trị sử dụng numpy np.isnan().

  • Để phát hiện NaNgiá trị gấu trúc sử dụng .isna()hoặc .isnull().
    Các NaNgiá 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.


3
Điều này giải thích mọi thứ và vâng tôi muốn suy ra 'pandas.DataFrame.isna ()' vs 'pandas.DataFrame.isnull ()'. Cảm ơn đã giải thích chi tiết.
Vaibhav Thakur
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.