NaN đã được giới thiệu, ít nhất là chính thức, theo Tiêu chuẩn IEEE cho Số học dấu phẩy động [IEEE 754]. Đó là một tiêu chuẩn kỹ thuật cho tính toán dấu phẩy động được thành lập vào năm 1985 - nhiều năm trước khi Python được phát minh và thậm chí còn lâu hơn nữa trước khi Pandas được tạo ra - bởi Viện Kỹ sư Điện và Điện tử [IEEE]. Nó được giới thiệu để giải quyết các vấn đề được tìm thấy trong nhiều triển khai dấu phẩy động khiến chúng khó sử dụng một cách đáng tin cậy và di động
Tiêu chuẩn này đã thêm NaN vào các định dạng số học. "các định dạng số học. tập hợp dữ liệu dấu phẩy động nhị phân và thập phân, bao gồm các số hữu hạn [bao gồm các số không có dấu và số phụ], vô hạn và các giá trị 'không phải là số' đặc biệt [NaN]"
Đào tạo Python trực tiếp
Thưởng thức trang này?
Thấy. Tổng quan về các khóa học Python trực tiếp
đăng ký tại đây
'nan' trong Python
Python cũng biết các giá trị NaN. Chúng ta có thể tạo nó với "float"
n1 = float["nan"] n2 = float["Nan"] n3 = float["NaN"] n4 = float["NAN"] print[n1, n2, n3, n4]
ĐẦU RA
nan nan nan nan
"nan" cũng là một phần của mô-đun toán học kể từ Python 3. 5
import math n1 = math.nan print[n1] print[math.isnan[n1]]
ĐẦU RA
nan True
Cảnh báo. Không thực hiện so sánh giữa giá trị "NaN" hoặc giá trị "Nan" với số thông thường. Một lý do đơn giản hoặc đơn giản hóa là đây. Hai thứ "không phải là số", vì vậy chúng có thể là bất cứ thứ gì nhưng hầu hết có thể không giống nhau. Trên hết, không có cách nào để đặt hàng NaN
print[n1 == n2] print[n1 == 0] print[n1 == 100] print[n2 0]nan nan nan nan6FooBar018-27114-23228-2136-23
Đối với nhiệm vụ của chúng tôi, chúng tôi cần tạo một DataFrame 'nan_df', hoàn toàn bao gồm các giá trị NaN và có hình dạng giống như DataFrame nhiệt độ của chúng tôi 'temp_df'. Chúng tôi sẽ sử dụng DataFrame này ở 'where'. Chúng tôi cũng cần một DataFrame với các điều kiện "df_bool" là giá trị True. Với mục đích này, chúng tôi sẽ tạo một DataFrame với các giá trị ngẫu nhiên trong khoảng từ 0 đến 1 và bằng cách áp dụng 'random_df < 0. 8', chúng tôi nhận được Khung dữ liệu df_bool, trong đó khoảng 20% giá trị sẽ là Đúng
nan nan nan nan7cảm biến1cảm biến2cảm biến3cảm biến4cảm biến5cảm biến6time06. 00. 00SaiĐúngTrueTrueTrueTrueSai06. 15. 00SaiĐúngTrueTrueTrueSaiTrue06. 30. 00SaiĐúngTrueTrueTrueTrueTrue06. 45. 00TrueTrueTrueTrueTrueFalse07. 00. 00TrueFalseTrueTrueTrueFalse
Cuối cùng, chúng tôi đã có mọi thứ cùng nhau để tạo DataFrame với các phép đo bị xáo trộn
nan nan nan nan8cảm biến1cảm biến2cảm biến3cảm biến4cảm biến5cảm biến6time06. 00. 00NaN13. 714. 214. 313. 5NaN06. 15. 00NaN14. 514. 015. 0NaN14. 706. 30. 00NaN15. 114. 815. 314. 014. 206. 45. 0014. 814. 515. 615. 214. 7NaN07. 00. 0015. 0NaN15. 715. 614. 0NaN07. 15. 0015. 215. 214. 615. 315. 514. 907. 30. 00NaN15. 315. 6NaN14. 715. 107. 45. 0015. 514. 815. 415. 514. 614. 908. 00. 0015. 715. 615. 916. 215. 415. 408. 15. 0015. 915. 8NaN16. 9NaN16. 2
Đào tạo Python trực tiếp
Thưởng thức trang này?
Thấy. Tổng quan về các khóa học Python trực tiếp
Các khóa học trực tuyến sắp tới
Python dành cho kỹ sư và nhà khoa học
Phân tích dữ liệu với Python
đăng ký tại đây
Sử dụng dropna trên DataFrame
'dropna' là một phương thức DataFrame. Nếu chúng ta gọi phương thức này mà không có đối số, nó sẽ trả về một đối tượng trong đó mọi hàng đều bị bỏ qua, trong đó dữ liệu bị thiếu, tôi. e. một số giá trị là NaN
nan nan nan nan9cảm biến1cảm biến2cảm biến3cảm biến4cảm biến5cảm biến6time07. 15. 0015. 215. 214. 615. 315. 514. 907. 45. 0015. 514. 815. 415. 514. 614. 908. 00. 0015. 715. 615. 916. 215. 415. 408. 30. 0016. 115. 716. 115. 914. 915. 209. 15. 0017. 117. 517. 517. 316. 616. 809. 45. 0018. 419. 019. 019. 418. 418. 310. 30. 0020. 419. 420. 021. 020. 219. 812. 15. 0023. 823. 724. 825. 122. 222. 413. 30. 0022. 921. 922. 924. 322. 923. 014. 15. 0022. 322. 921. 922. 322. 521. 116. 00. 0021. 121. 620. 720. 619. 921. 417. 45. 0019. 920. 419. 421. 120. 020. 518. 30. 0019. 519. 119. 219. 718. 318. 3
'dropna' cũng có thể được sử dụng để loại bỏ tất cả các cột trong đó một số giá trị là NaN. Điều này có thể đạt được bằng cách gán 1 cho tham số trục. Giá trị mặc định là Sai, như chúng ta đã thấy trong ví dụ trước. Vì mọi cột từ cảm biến của chúng tôi đều chứa giá trị NaN nên tất cả chúng sẽ biến mất
import math n1 = math.nan print[n1] print[math.isnan[n1]]0thời gian06. 00. 0006. 15. 0006. 30. 0006. 45. 0007. 00. 00
Hãy để chúng tôi thay đổi nhiệm vụ của chúng tôi. Chúng tôi chỉ muốn loại bỏ tất cả các hàng chứa nhiều hơn một giá trị NaN. Tham số 'thresh' là lý tưởng cho nhiệm vụ này. Nó có thể được đặt thành số tối thiểu. 'thresh' được đặt thành một giá trị số nguyên, xác định số lượng giá trị không phải NaN tối thiểu. Chúng tôi có sáu giá trị nhiệt độ trong mỗi hàng. Đặt 'thresh' thành 5 đảm bảo rằng chúng tôi sẽ có ít nhất 5 số float hợp lệ trong mỗi hàng còn lại
import math n1 = math.nan print[n1] print[math.isnan[n1]]1cảm biến1cảm biến2cảm biến3cảm biến4cảm biến5cảm biến6time06. 00. 00NaN13. 714. 214. 313. 5NaN06. 15. 00NaN14. 514. 015. 0NaN14. 706. 30. 00NaN15. 114. 815. 314. 014. 206. 45. 0014. 814. 515. 615. 214. 7NaN07. 00. 0015. 0NaN15. 715. 614. 0NaN07. 15. 0015. 215. 214. 615. 315. 514. 907. 30. 00NaN15. 315. 6NaN14. 715. 1
Bây giờ chúng tôi sẽ tính toán lại các giá trị trung bình, nhưng lần này trên DataFrame 'cleansed_df', tôi. e. nơi chúng tôi đã loại bỏ tất cả các hàng, nơi xảy ra nhiều hơn một giá trị NaN
import math n1 = math.nan print[n1] print[math.isnan[n1]]2nhiệt độthời gian06. 00. 0013. 92500006. 15. 0014. 55000006. 30. 0014. 68000006. 45. 0014. 96000007. 00. 0015. 07500007. 15. 0015. 116667
Làm cách nào để nhập NaN bằng Python?
5 Phương pháp kiểm tra giá trị NaN trong Python .nhập gấu trúc dưới dạng pd. x = float["nan"] print[f"Đó là pd. isna. {pd. isna[x] }"]OutputIt's pd. isna. Thậtnhập numpy dưới dạng np. x = float["nan"] print[f"Đó là np. isnan. {np. isnan[x] }"]OutputIt's np. isnan. Thậtnhập toán. x = float["nan"]Làm cách nào để thêm giá trị NaN vào mảng NumPy?
Trong NumPy, để thay thế các giá trị bị thiếu NaN [ np. nan ] trong ndarray với các số khác, sử dụng np. nan_to_num[] hoặc np. isnan[] .Có phải NaN == NP NaN không?
nan KHÔNG bằng nan . nan is False có thể gây ra phản ứng bối rối và thất vọng.