Để trả về Index mới với các giá trị thỏa mãn điều kiện bị thay thế (mask), hãy sử dụng phương thức index.putmask() với mask boolean và giá trị thay thế.
Các bước thực hiện
1. Import thư viện cần thiết
import pandas as pd
2. Tạo Index
index = pd.Index([5, 65, 10, 17, 75, 40])
3. Hiển thị Index
print("Pandas Index...\n", index)
4. Mask các giá trị < 30 thay bằng 111
print("\nMask (giá trị < 30 thành 111)...\n", index.putmask(index < 30, 111))
Ví dụ hoàn chỉnh
import pandas as pd
# Tạo Index
index = pd.Index([5, 65, 10, 17, 75, 40])
# Hiển thị Index
print("Pandas Index...\n", index)
# Số lượng phần tử
print("\nSố phần tử (size)...\n", index.size)
# Kiểu dữ liệu
print("\nKiểu dữ liệu (dtype)...\n", index.dtype)
# Mask giá trị < 30 thành 111
print("\nMask (giá trị < 30 thành 111)...\n", index.putmask(index < 30, 111))
Kết quả đầu ra
Pandas Index...
Int64Index([5, 65, 10, 17, 75, 40], dtype='int64')
Số phần tử (size)...
6
Kiểu dữ liệu (dtype)...
int64
Mask (giá trị < 30 thành 111)...
Int64Index([111, 65, 111, 111, 75, 40], dtype='int64')
Giải thích: Điều kiện index < 30 tạo mask [True, False, True, True, False, False]. Vị trí 0,2,3 (giá trị 5,10,17) bị thay bằng 111. putmask linh hoạt hơn where: index.where(index >= 30, 111) cho kết quả ngược lại (giữ >=30, thay <30).