Để lấy vị trí cho một nhãn đơn lẻ hoặc một tuple các nhãn trong MultiIndex, chúng ta sử dụng phương thức MultiIndex.get_loc() trong Pandas.
Các bước thực hiện
1. Import thư viện
import pandas as pd
2. Tạo MultiIndex
multiIndex = pd.MultiIndex.from_arrays([list('pqrrss'), list('stuvwx')])
3. Hiển thị MultiIndex
print("MultiIndex:\n", multiIndex)
4. Lấy vị trí
Sử dụng get_loc('s') để tìm vị trí của nhãn 's':
print("\nCác vị trí trong MultiIndex:\n", multiIndex.get_loc('s'))
Ví dụ hoàn chỉnh
import pandas as pd
# Tạo MultiIndex
multiIndex = pd.MultiIndex.from_arrays([list('pqrrss'), list('stuvwx')])
# Hiển thị MultiIndex
print("MultiIndex:\n", multiIndex)
# Hiển thị các cấp độ
print("\nCác cấp độ trong MultiIndex:\n", multiIndex.levels)
# Lấy vị trí cho nhãn 's'
print("\nCác vị trí trong MultiIndex:\n", multiIndex.get_loc('s'))
Kết quả đầu ra
MultiIndex:
MultiIndex([('p', 's'), ('q', 't'), ('r', 'u'), ('r', 'v'), ('s', 'w'), ('s', 'x')], )
Các cấp độ trong MultiIndex:
[['p', 'q', 'r', 's'], ['s', 't', 'u', 'v', 'w', 'x']]
Các vị trí trong MultiIndex:
slice(4, 6, None)
Giải thích kết quả
Kết quả slice(4, 6, None) cho thấy nhãn 's' xuất hiện ở các vị trí từ 4 đến 5 (0-indexed). Phương thức get_loc() trả về:
- Integer nếu nhãn duy nhất
- Slice nếu nhãn xuất hiện liên tiếp
- Boolean mask nếu nhãn xuất hiện không liên tiếp
- Tuple nếu truy vấn bằng tuple (nhãn chính xác cho mọi cấp độ)
Đây là phương thức linh hoạt nhất để truy vấn vị trí trong MultiIndex.