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

Python Pandas - Trả về Index mới với giá trị bị mask theo điều kiện

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