Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python Pandas - Che mặt (mask) và thay thế NaN bằng giá trị cụ thể

Để che mặt (mask) và thay thế các giá trị NaN trong Index bằng một giá trị cụ thể, hãy sử dụng phương thức index.putmask() kết hợp với index.isna().

Các bước thực hiện

1. Import thư viện cần thiết

import pandas as pd
import numpy as np

2. Tạo Index có NaN

index = pd.Index([5, 65, 10, np.nan, 75, np.nan])

3. Hiển thị Index

print("Pandas Index...\n", index)

4. Che mặt và thay thế NaN bằng 111

print("\nMask (thay NaN bằng 111)...\n", index.putmask(index.isna(), 111))

Ví dụ hoàn chỉnh

import pandas as pd
import numpy as np

# Tạo Index có NaN
index = pd.Index([5, 65, 10, np.nan, 75, np.nan])

# Hiển thị Index
print("Pandas Index...\n", index)

# Số lượng phần tử
print("\nSố phần tử (size)...\n", index.size)

# Che mặt và thay thế NaN bằng 111
print("\nMask (thay NaN bằng 111)...\n", index.putmask(index.isna(), 111))

Kết quả đầu ra

Pandas Index...
Float64Index([5.0, 65.0, 10.0, nan, 75.0, nan], dtype='float64')
Số phần tử (size)...
6
Mask (thay NaN bằng 111)...
Float64Index([5.0, 65.0, 10.0, 111.0, 75.0, 111.0], dtype='float64')

Giải thích: index.isna() tạo mask boolean [False, False, False, True, False, True]. putmask(mask, value) thay giá trị tại vị trí True bằng value (111). Trả về Index mới. Khác với fillna(), putmask cho phép điều kiện tùy ý, không chỉ NaN.