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

Python Pandas - Lấy giá trị level theo tên trong MultiIndex

Để lấy vector giá trị của một level (cấp) trong MultiIndex bằng tên level, dùng phương thức MultiIndex.get_level_values(name).

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('strvwx')],
    names=['One', 'Two']
)

3. Hiển thị MultiIndex

print("MultiIndex...\n", multiIndex)

4. Lấy giá trị level tên 'Two'

print("\nGiá trị level 'Two'...\n",
      multiIndex.get_level_values("Two"))

Ví dụ hoàn chỉnh

import pandas as pd

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

print("MultiIndex...\n", multiIndex)
print("\nCác level trong MultiIndex...\n", multiIndex.levels)
print("\nGiá trị level 'Two'...\n",
      multiIndex.get_level_values("Two"))

Kết quả đầu ra

MultiIndex...
MultiIndex([('p', 's'), ('q', 't'), ('r', 'r'), ('r', 'v'), ('s', 'w'), ('s', 'x')],
           names=['One', 'Two'])

Các level trong MultiIndex...
[['p', 'q', 'r', 's'], ['r', 's', 't', 'v', 'w', 'x']]

Giá trị level 'Two'...
Index(['s', 't', 'r', 'v', 'w', 'x'], dtype='object', name='Two')

Giải thích

  • MultiIndex.from_arrays: Tạo MultiIndex từ danh sách các mảng (mỗi mảng = 1 level)
  • names=['One', 'Two']: Đặt tên cho 2 level
  • get_level_values("Two"): Trả về Index chứa tất cả giá trị của level 'Two' theo thứ tự
  • Kết quả giữ nguyên tên level (name='Two')

Các cách truy xuất level khác

  • get_level_values(0) hoặc get_level_values(1): Theo vị trí (0-based)
  • multiIndex.levels[0]: Lấy các giá trị duy nhất của level 0 (đã sắp xếp, không trùng)
  • multiIndex.codes[0]: Mã hóa vị trí của mỗi phần tử trong levels