Mỗi phương pháp này đều cho ra cùng một kết quả, nhưng phương pháp đầu tiên là cách gõ ngắn nhất nên thường được sử dụng nhiều nhất Các ví dụ sau đây cho thấy cách sử dụng từng phương pháp trong thực tế Show
ví dụ 1. Xóa các giá trị NaN bằng cách sử dụng isnan()Đoạn mã sau cho biết cách xóa các giá trị NaN khỏi mảng NumPy bằng cách sử dụng hàm isnan() import numpy as np
#create array of data
data = np.array([4, np.nan, 6, np.nan, 10, 11, 14, 19, 22])
#define new array of data with nan values removed
new_data = data[~np.isnan(data)]
#view new array
print(new_data)
[ 4. 6. 10. 11. 14. 19. 22.]
Lưu ý rằng hai giá trị NaN đã được xóa thành công khỏi mảng NumPy Phương thức này chỉ đơn giản là giữ tất cả các phần tử trong mảng không phải là (~) giá trị NaN ví dụ 2. Xóa các giá trị NaN bằng cách sử dụng isfinite()Đoạn mã sau cho biết cách xóa các giá trị NaN khỏi mảng NumPy bằng cách sử dụng hàm isfinite() import numpy as np
#create array of data
data = np.array([4, np.nan, 6, np.nan, 10, 11, 14, 19, 22])
#define new array of data with nan values removed
new_data = data[np.isfinite(data)]
#view new array
print(new_data)
[ 4. 6. 10. 11. 14. 19. 22.]
Lưu ý rằng hai giá trị NaN đã được xóa thành công khỏi mảng NumPy Phương pháp này chỉ đơn giản là giữ tất cả các phần tử trong mảng là các giá trị hữu hạn Vì các giá trị NaN không phải là hữu hạn nên chúng bị xóa khỏi mảng ví dụ 3. Xóa các giá trị NaN bằng cách sử dụng logic_not()Đoạn mã sau cho biết cách xóa các giá trị NaN khỏi mảng NumPy bằng cách sử dụng hàm logic_not() import numpy as np
#create array of data
data = np.array([4, np.nan, 6, np.nan, 10, 11, 14, 19, 22])
#define new array of data with nan values removed
new_data = data[np.logical_not(np.isnan(data))]
#view new array
print(new_data)
[ 4. 6. 10. 11. 14. 19. 22.]
Lưu ý rằng hai giá trị NaN đã được xóa thành công khỏi mảng NumPy Mặc dù phương pháp này tương đương với hai phương pháp trước, nhưng nó yêu cầu gõ nhiều hơn nên không được sử dụng thường xuyên Để bắt đầu, đây là cú pháp mà bạn có thể áp dụng để thả các hàng có giá trị NaN trong DataFrame của mình df.dropna() Trong phần tiếp theo, các bạn sẽ quan sát các bước áp dụng cú pháp trên vào thực tế Các bước để thả hàng với giá trị NaN trong Pandas DataFrameBước 1. Tạo một DataFrame với các giá trị NaNGiả sử bạn có tập dữ liệu sau giá trị_1giá trị_2700DDDABC150500350XYZ40012005000Sau đó, bạn có thể nắm bắt dữ liệu trên bằng Python bằng cách tạo DataFrame import pandas as pd df = pd.DataFrame({'values_1': ['700','ABC','500','XYZ','1200'], 'values_2': ['DDD','150','350','400','5000'] }) print (df) Khi bạn chạy mã, bạn sẽ nhận được DataFrame này
Lưu ý rằng DataFrame chứa cả hai
Sau đó, bạn có thể sử dụng to_numeric để chuyển đổi các giá trị trong tập dữ liệu sang định dạng float. Nhưng vì 3 trong số các giá trị đó không phải là số, nên bạn sẽ nhận được 'NaN' cho 3 giá trị đó Đây là mã mà bạn có thể sử dụng để lấy các giá trị NaN import pandas as pd df = pd.DataFrame({'values_1': ['700','ABC','500','XYZ','1200'], 'values_2': ['DDD','150','350','400','5000'] }) df = df.apply (pd.to_numeric, errors='coerce') print (df) Như bạn có thể quan sát, các hàng đầu tiên, thứ hai và thứ tư hiện có các giá trị NaN
Bước 2. Bỏ các hàng có giá trị NaN trong Pandas DataFrameĐể xóa tất cả các hàng có giá trị NaN, bạn có thể sử dụng df. dropna() Đây là mã Python hoàn chỉnh để loại bỏ các hàng đó bằng các giá trị NaN ________số 8Chạy mã và bạn sẽ chỉ thấy hai hàng không có bất kỳ giá trị NaN nào
Bạn có thể nhận thấy rằng hai hàng đó không còn có chỉ mục tuần tự. Hiện tại là 2 và 4. Sau đó, bạn có thể đặt lại chỉ mục để bắt đầu từ 0 |