Để 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.