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

Python Pandas - Lấy giá trị từ một cấp độ cụ thể trong MultiIndex

Để lấy giá trị từ một cấp độ (level) cụ thể trong MultiIndex, sử dụng phương thức multiIndex.get_level_values() trong Pandas.

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

  1. Import thư viện: import pandas as pd
  2. Tạo MultiIndex từ các mảng con với tham số names đặt tên cho các cấp độ.
  3. Gọi get_level_values(0) cho cấp độ 0, get_level_values(1) cho cấp độ 1, v.v.

Ví dụ hoàn chỉnh

import pandas as pd

# Tạo MultiIndex từ các mảng, đặt tên cấp độ a, b, c, d
multiIndex = pd.MultiIndex.from_arrays(
    [[5, 10], [15, 20], [25, 30], [35, 40]],
    names=['a', 'b', 'c', 'd']
)

print("Multi-index...\n", multiIndex)

# Lấy giá trị cấp độ 0 (a)
print("\nGet level value (0th level)...\n", multiIndex.get_level_values(0))

# Lấy giá trị cấp độ 1 (b)
print("\nGet level value (1st level)...\n", multiIndex.get_level_values(1))

# Thêm: bỏ một cấp độ khỏi MultiIndex
print("\nDropping a level...\n", multiIndex.droplevel())

Kết quả

Multi-index...
 MultiIndex([( 5, 15, 25, 35), (10, 20, 30, 40)], names=['a', 'b', 'c', 'd'])
Get level value (0th level)...
 Int64Index([5, 10], dtype='int64', name='a')
Get level value (1st level)...
 Int64Index([15, 20], dtype='int64', name='b')
Dropping a level...
 MultiIndex([(15, 25, 35), (20, 30, 40)], names=['b', 'c', 'd'])

Giải thích: get_level_values(level) trả về một Index chứa tất cả giá trị tại cấp độ level của MultiIndex, giữ nguyên thứ tự.