Làm cách nào để thay thế nan bằng 0 trong python?

Trong Python, NaN có nghĩa là Không phải là Số. Nó biểu thị rằng các mục có giá trị NaN không được xác định hoặc bị thiếu trong tập dữ liệu. Đó là một giá trị dấu phẩy động và không thể chuyển đổi thành bất kỳ loại dữ liệu nào khác

Các giá trị NaN không được mong muốn, đặc biệt là trong các mô hình học máy vì chúng có thể dẫn đến việc đào tạo một mô hình không chính xác. Các giá trị này có thể được thay thế bằng một thuật ngữ được tính toán như giá trị trung bình, trung vị hoặc bất kỳ giá trị phù hợp nào khác dựa trên tập dữ liệu

Cũng đọc. Làm cách nào để thay thế các giá trị NAN trong Pandas bằng một chuỗi rỗng?

Hướng dẫn này sẽ xem xét cách chúng ta có thể thay thế các giá trị NaN bằng 0 trong khung dữ liệu Pandas. Trước tiên hãy tạo một khung dữ liệu để bắt đầu với


Tạo một khung dữ liệu Pandas

import pandas as pd 
import numpy as np

data = {
    'Mobile Model Number': [6, np.nan, 2, np.nan, 7, 3, 5,
                            np.nan, 21, 12, np.nan],
    'Price': [30000, 5200, 6000, np.nan, np.nan, 15000, 36000,
              np.nan, 4500, np.nan, 2300], 
    'Rating': [3.1, 3.0, np.nan, 4.6, np.nan, np.nan, 2.8, 4.7, 
               np.nan, 3.0, np.nan]
}

df = pd.DataFrame(data)

df

Làm cách nào để thay thế nan bằng 0 trong python?
Khung dữ liệu

Trên đây là khung dữ liệu gồm 3 cột. Số kiểu, giá và xếp hạng của điện thoại di động. Hiện tại tất cả các cột này đều chứa một số giá trị NaN


Các hàm Python để thay thế các giá trị NaN

Có hai hàm chủ yếu có sẵn trong Python để thay thế các giá trị NaN
1. replace()
2. fillna()

Bạn có thể tìm hiểu thêm về hàm replace() bằng cách tham khảo điều này và về hàm fillna() bằng cách tham khảo bài viết này


Ví dụ về việc thay thế các giá trị NaN bằng 0

Hãy bắt đầu với một vài ví dụ về việc thay thế các giá trị NaN tại đây và hiểu cách thức hoạt động của nó trong mã

Sử dụng hàm thay thế()

a. Sử dụng replace() để thay thế các giá trị NaN trong một cột bằng 0

data = {
    'Mobile Model Number': [6, np.nan, 2, np.nan, 7, 3, 5,
                            np.nan, 21, 12, np.nan],
    'Price': [30000, 5200, 6000, np.nan, np.nan, 15000, 36000,
              np.nan, 4500, np.nan, 2300], 
    'Rating': [3.1, 3.0, np.nan, 4.6, np.nan, np.nan, 2.8, 4.7, 
               np.nan, 3.0, np.nan]
}

# applying the replace method on a single column
df['Rating'] = df['Rating'].replace(np.nan, 0)

df

Làm cách nào để thay thế nan bằng 0 trong python?
thay thế(). Thay thế NaN trong một cột bằng 0

Trong đoạn mã trên, chúng tôi đã áp dụng hàm replace() để thay thế các giá trị NaN bằng 0 trong cột 'Xếp hạng' của khung dữ liệu. Do đó, cột này hiện có 0 thay cho các giá trị NaN trước đây

b. Sử dụng replace() để thay thế các giá trị NaN trong toàn bộ khung dữ liệu bằng 0

data = {
    'Mobile Model Number': [6, np.nan, 2, np.nan, 7, 3, 5,
                            np.nan, 21, 12, np.nan],
    'Price': [30000, 5200, 6000, np.nan, np.nan, 15000, 36000,
              np.nan, 4500, np.nan, 2300], 
    'Rating': [3.1, 3.0, np.nan, 4.6, np.nan, np.nan, 2.8, 4.7, 
               np.nan, 3.0, np.nan]
}

# applying the replace method on the entire dataframe
df = df.replace(np.nan, 0)

df

Làm cách nào để thay thế nan bằng 0 trong python?
thay thế(). Thay thế NaN trong toàn bộ khung dữ liệu bằng 0

Trong trường hợp này, chúng tôi đã thay thế tất cả các giá trị NaN trong toàn bộ khung dữ liệu bằng 0 cùng một lúc


Sử dụng hàm fillna()

Ví dụ này sẽ sử dụng hàm fillna() mà chúng ta đã khám phá trước đó

a. Sử dụng fillna() để thay thế các giá trị NaN trong một cột bằng 0

data = {
    'Mobile Model Number': [6, np.nan, 2, np.nan, 7, 3, 5,
                            np.nan, 21, 12, np.nan],
    'Price': [30000, 5200, 6000, np.nan, np.nan, 15000, 36000,
              np.nan, 4500, np.nan, 2300], 
    'Rating': [3.1, 3.0, np.nan, 4.6, np.nan, np.nan, 2.8, 4.7, 
               np.nan, 3.0, np.nan]
}

# applying the fillna method on a single column
df['Mobile Model Number'] = df['Mobile Model Number'].fillna(0)

df

Làm cách nào để thay thế nan bằng 0 trong python?
điền (). Thay thế NaN trong một cột bằng 0

Ở đây, chúng tôi đã thay thế tất cả các giá trị NaN trong cột 'Xếp hạng' bằng 0

b. Sử dụng fillna() để thay thế các giá trị NaN trong toàn bộ khung dữ liệu bằng 0

data = {
    'Mobile Model Number': [6, np.nan, 2, np.nan, 7, 3, 5,
                            np.nan, 21, 12, np.nan],
    'Price': [30000, 5200, 6000, np.nan, np.nan, 15000, 36000,
              np.nan, 4500, np.nan, 2300], 
    'Rating': [3.1, 3.0, np.nan, 4.6, np.nan, np.nan, 2.8, 4.7, 
               np.nan, 3.0, np.nan]
}
# applying the fillna method on the entire dataframe
df.fillna(0)

df

Làm cách nào để thay thế nan bằng 0 trong python?
điền (). Thay thế NaN trong Toàn bộ khung dữ liệu bằng 0

Trong trường hợp này, chúng tôi đã sử dụng hàm fillna() để thay thế tất cả các giá trị NaN trong khung dữ liệu bằng 0 cùng một lúc


Bản tóm tắt

Do đó, chúng ta đã thấy cách thay thế các giá trị NaN bằng 0 trong khung dữ liệu. Để tìm hiểu thêm về Pandas và các khái niệm khác liên quan đến Python, hãy xem các blog khác của chúng tôi