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

Python Pandas - Lấy tên các cấp độ trong MultiIndex

Để lấy tên các cấp độ (level names) của MultiIndex, chúng ta sử dụng thuộc tính MultiIndex.names.

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

1. Import thư viện

import pandas as pd

2. Tạo MultiIndex có tên cấp độ

arrays = [[1, 2, 3, 4, 5], ['John', 'Tim', 'Jacob', 'Chris', 'Keiron']]
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))

3. Lấy tên cấp độ

print("\nTên các cấp độ trong MultiIndex:\n", multiIndex.names)

Ví dụ hoàn chỉnh

import pandas as pd

arrays = [[1, 2, 3, 4, 5], ['John', 'Tim', 'Jacob', 'Chris', 'Keiron']]
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))

print("MultiIndex:\n", multiIndex)
print("\nTên cấp độ:\n", multiIndex.names)
print("\nCác cấp độ:\n", multiIndex.levels)

Kết quả đầu ra

MultiIndex:
MultiIndex([(1, 'John'), (2, 'Tim'), (3, 'Jacob'), (4, 'Chris'), (5, 'Keiron')], names=['ranks', 'student'])
Tên cấp độ:
['ranks', 'student']
Các cấp độ:
[[1, 2, 3, 4, 5], ['Chris', 'Jacob', 'John', 'Keiron', 'Tim']]

Đặc điểm của names

  • Trả về list của string (hoặc None nếu cấp độ không có tên).
  • Độ dài bằng nlevels.
  • Có thể gán lại: multiIndex.names = ['new_rank', 'new_student'].

Ứng dụng thực tế

# Lấy chỉ số cấp độ từ tên
level_idx = multiIndex.names.index('student')  # 1

# Đặt tên mới
multiIndex.names = ['Rank', 'Student']

# Kiểm tra có tên không
all(name is not None for name in multiIndex.names)  # True

Tên cấp độ quan trọng khi dùng reorder_levels(), droplevel(), set_levels() với tham số tên, và khi chuyển sang DataFrame (to_frame() dùng tên làm tên cột).