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

Python Pandas - Lấy vị trí và chỉ mục cắt cho nhãn/cấp độ được yêu cầu trong MultiIndex

Để lấy vị trí và chỉ mục cắt (sliced index) cho nhãn hoặc cấp độ được yêu cầu trong MultiIndex, chúng ta sử dụng phương thức get_loc_level() trong Pandas.

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

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

import pandas as pd

2. Tạo MultiIndex

MultiIndex là đối tượng chỉ mục đa cấp (hierarchical) cho các đối tượng pandas. Chúng ta tạo từ các mảng bằng from_arrays():

multiIndex = pd.MultiIndex.from_arrays([list('pqrrss'), list('strvwx')], names=['One', 'Two'])

3. Hiển thị MultiIndex

print("MultiIndex:\n", multiIndex)

4. Lấy vị trí và chỉ mục cắt

Sử dụng get_loc_level('r') để tìm vị trí của nhãn 'r':

print("\nVị trí và chỉ mục cắt:\n", multiIndex.get_loc_level('r'))

Ví dụ hoàn chỉnh

import pandas as pd

# Tạo MultiIndex từ các mảng
multiIndex = pd.MultiIndex.from_arrays([list('pqrrss'), list('strvwx')], names=['One', 'Two'])

# Hiển thị MultiIndex
print("MultiIndex:\n", multiIndex)

# Hiển thị các cấp độ trong MultiIndex
print("\nCác cấp độ trong MultiIndex:\n", multiIndex.levels)

# Lấy vị trí và chỉ mục cắt cho nhãn 'r'
print("\nVị trí và chỉ mục cắt:\n", multiIndex.get_loc_level('r'))

Kết quả đầu ra

MultiIndex:
MultiIndex([('p', 's'), ('q', 't'), ('r', 'r'), ('r', 'v'), ('s', 'w'), ('s', 'x')], names=['One', 'Two'])
Các cấp độ trong MultiIndex:
[['p', 'q', 'r', 's'], ['r', 's', 't', 'v', 'w', 'x']]
Vị trí và chỉ mục cắt:
(slice(2, 4, None), Index(['r', 'v'], dtype='object', name='Two'))

Giải thích kết quả

  • slice(2, 4, None): Chỉ mục cắt từ vị trí 2 đến 4 (không bao gồm 4), tức là các hàng thứ 3 và 4 (0-indexed).
  • Index(['r', 'v'], name='Two'): Các giá trị ở cấp độ 'Two' tương ứng với các hàng đó.

Phương thức này rất hữu ích khi bạn cần lọc hoặc truy xuất dữ liệu dựa trên nhãn ở một cấp độ cụ thể trong MultiIndex.