Hướng dẫn how do i fix nan in python? - làm cách nào để sửa nan trong python?
Bởi Bernd Klein. Sửa đổi lần cuối: 24 tháng 3 năm 2022.Bernd Klein. Last modified: 24 Mar 2022. Show
Trên trang này➤ Giới thiệuNAN đã được giới thiệu, ít nhất là chính thức, theo tiêu chuẩn của IEEE cho số học nổi (IEEE 754). Đây là một tiêu chuẩn kỹ thuật để tính toán điểm nổi được thiết lập vào năm 1985 - nhiều năm trước khi Python được phát minh, và thậm chí cả thời gian dài hơn cho 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 điểm nổi khiến chúng khó sử dụng một cách đáng tin cậy và một cách đáng tin cậy. 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: Các bộ 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ó chữ ký và số dưới mức), tính không đồng nhất và các giá trị 'không phải là số' (NAN) đặc biệt (NAN) " 'nan' trong PythonPython cũng biết các giá trị NAN. Chúng ta có thể tạo nó bằng "float": n1 = float("nan") n2 = float("Nan") n3 = float("NaN") n4 = float("NAN") print(n1, n2, n3, n4) OUTPUT:"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)) OUTPUT:Cảnh báo: Không thực hiện so sánh giữa các giá trị "NAN" hoặc các giá trị "NAN" và số thông thường. Một lý luận đơn giản hoặc đơn giản là thế này: hai điều "không phải là một số", vì vậy chúng có thể là bất cứ điều gì nhưng hầu hết có lẽ không giống nhau. Trên hết, không có cách nào để đặt hàng nans: print(n1 == n2) print(n1 == 0) print(n1 == 100) print(n2 < 0) OUTPUT:Nan trong gấu trúcVí dụ mà không có nansTrước khi chúng tôi làm việc với dữ liệu NAN, chúng tôi sẽ xử lý một tệp mà không có bất kỳ giá trị NAN nào. Nhiệt độ tệp dữ liệu.CSV chứa dữ liệu nhiệt độ của sáu cảm biến được thực hiện cứ sau 15 minut trong khoảng thời gian từ 6:00 đến 19,15 giờ. Đọc trong tệp dữ liệu có thể được thực hiện với chức năng read_csv: import pandas as pd df = pd.read_csv("../data1/temperatures.csv", sep=";", decimal=",", index_col=0) df[:5]
Chúng tôi muốn tính toán nhiệt độ avarage trên mỗi điểm đo trên tất cả các cảm biến. Chúng ta có thể sử dụng phương thức DataFrame 'trung bình'. Nếu chúng ta sử dụng 'trung bình' mà không có tham số, nó sẽ tổng hợp các cột cảm biến, đó không phải là điều chúng ta muốn, nhưng nó cũng có thể thú vị: OUTPUT:sensor1 19.775926 sensor2 19.757407 sensor3 19.840741 sensor4 20.187037 sensor5 19.181481 sensor6 19.437037 dtype: float64 average_temp_series = df.mean(axis=1) print(average_temp_series[:8]) OUTPUT:time 06:00:00 13.933333 06:15:00 14.533333 06:30:00 14.666667 06:45:00 14.900000 07:00:00 15.083333 07:15:00 15.116667 07:30:00 15.283333 07:45:00 15.116667 dtype: float64 sensors = df.columns.values[0:] # all columns will be removed: df = df.drop(sensors, axis=1) print(df[:5]) OUTPUT:Empty DataFrame Columns: [] Index: [06:00:00, 06:15:00, 06:30:00, 06:45:00, 07:00:00] Bây giờ chúng tôi sẽ gán các giá trị nhiệt độ trung bình là một cột mới 'nhiệt độ': # best practice: df = df.assign(temperature=average_temp_series) # inplace option not available # alternatively: #df.loc[:,"temperature"] = average_temp_series
Chúng tôi muốn tính toán nhiệt độ avarage trên mỗi điểm đo trên tất cả các cảm biến. Chúng ta có thể sử dụng phương thức DataFrame 'trung bình'. Nếu chúng ta sử dụng 'trung bình' mà không có tham số, nó sẽ tổng hợp các cột cảm biến, đó không phải là điều chúng ta muốn, nhưng nó cũng có thể thú vị:Bây giờ chúng tôi sẽ gán các giá trị nhiệt độ trung bình là một cột mới 'nhiệt độ': nhiệt độ Ví dụ với Nans import math n1 = math.nan print(n1) print(math.isnan(n1))0
Chúng tôi muốn tính toán nhiệt độ avarage trên mỗi điểm đo trên tất cả các cảm biến. Chúng ta có thể sử dụng phương thức DataFrame 'trung bình'. Nếu chúng ta sử dụng 'trung bình' mà không có tham số, nó sẽ tổng hợp các cột cảm biến, đó không phải là điều chúng ta muốn, nhưng nó cũng có thể thú vị: Bây giờ chúng tôi sẽ gán các giá trị nhiệt độ trung bình là một cột mới 'nhiệt độ': nhiệt độ import math n1 = math.nan print(n1) print(math.isnan(n1))1
Chúng tôi sẽ tạo ra một khung dữ liệu nhiệt độ, trong đó một số dữ liệu không được xác định, tức là nan. import math n1 = math.nan print(n1) print(math.isnan(n1))2
Bây giờ chúng tôi sẽ gán các giá trị nhiệt độ trung bình là một cột mới 'nhiệt độ': import math n1 = math.nan print(n1) print(math.isnan(n1))3
Đào tạo Python sống Các khóa học trực tuyến sắp tới Ghi danh ở đâ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 được thực hiện, trong đó thiếu dữ liệu, tức là một số giá trị là NAN: import math n1 = math.nan print(n1) print(math.isnan(n1))4
'Dropna' cũng có thể được sử dụng để thả 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 của chúng ta. Vì mọi cột từ các cảm biến của chúng tôi chứa các giá trị NAN, tất cả chúng sẽ biến mất: import math n1 = math.nan print(n1) print(math.isnan(n1))5
'Dropna' cũng có thể được sử dụng để thả 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 của chúng ta. Vì mọi cột từ các cảm biến của chúng tôi chứa các giá trị NAN, tất cả chúng sẽ biến mất: import math n1 = math.nan print(n1) print(math.isnan(n1))6
'Dropna' cũng có thể được sử dụng để thả 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 của chúng ta. Vì mọi cột từ các cảm biến của chúng tôi chứa các giá trị NAN, tất cả chúng sẽ biến mất: import math n1 = math.nan print(n1) print(math.isnan(n1))7
Đào tạo Python sống Các khóa học trực tuyến sắp tới Ghi danh ở đây Tại sao tôi lại nhận được Nan ở Python?Nan có nghĩa là không phải là một số, điều này là do bên trong chức năng khối lập phương của bạn, bạn không gọi hàm vuông, nhưng nhận được nội dung của nó. Thay đổi trả về x * vuông; với return x * vuông (x); Và nó nên hoạt động.inside your cube function, you're not calling the square function, but getting it's contents. Change return x * square; with return x * square(x); and it should work.
Làm cách nào để thay thế NAN bằng 0 trong Python?Bạn cũng có thể sử dụng df.replace (np.nan, 0) để thay thế tất cả các giá trị NAN bằng 0.Điều này thay thế tất cả các cột của DataFrame bằng 0 cho các giá trị NAN.df. replace(np. nan,0) to replace all NaN values with zero. This replaces all columns of DataFrame with zero for Nan values.
Làm cách nào để thay đổi giá trị nan trong Python?Thay thế các giá trị NAN bằng số không trong Pandas DataFrame.. . . (3) Đối với toàn bộ dữ liệu sử dụng gấu trúc: df.fillna (0). Làm thế nào để Python xử lý NAN?Chúng ta có thể tạo nó với "float":.. n1 = float ("nan") n2 = float ("nan") n3 = float ("nan") n4 = float ("nan") in (n1, n2, n3, n4) .... Nhập toán N1 = Toán..... in (n1 == n2) in (n1 == 0) in (n1 == 100) in (n2 <0) .... Nhập gấu trúc dưới dạng pd df = pd..... trung bình_temp_series = df..... Cảm biến = DF..... # Thực hành tốt nhất: DF = DF .. |