Để lấy danh sách các cấp độ (levels) của MultiIndex, chúng ta sử dụng thuộc tính MultiIndex.levels.
Các bước thực hiện
1. Import thư viện
import pandas as pd
2. Tạo MultiIndex
arrays = [[1, 2, 3, 4, 5], ['John', 'Tim', 'Jacob', 'Chris', 'Keiron']]
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))
3. Lấy levels
print("\nCác cấp độ trong MultiIndex:\n", multiIndex.levels)
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("\nCác cấp độ trong MultiIndex:\n", multiIndex.levels)
Kết quả đầu ra
MultiIndex: MultiIndex([(1, 'John'), (2, 'Tim'), (3, 'Jacob'), (4, 'Chris'), (5, 'Keiron')], names=['ranks', 'student']) Các cấp độ trong MultiIndex: [[1, 2, 3, 4, 5], ['Chris', 'Jacob', 'John', 'Keiron', 'Tim']]
Đặc điểm của levels
- Trả về list của Index objects, mỗi Index chứa các giá trị duy nhất (unique) và đã sắp xếp của cấp độ đó.
- Cấp độ 0 (ranks): [1, 2, 3, 4, 5] - số nguyên đã sắp xếp.
- Cấp độ 1 (student): ['Chris', 'Jacob', 'John', 'Keiron', 'Tim'] - chuỗi đã sắp xếp theo alphabet.
- Thứ tự trong levels không nhất thiết giống thứ tự xuất hiện trong MultiIndex.
Ứng dụng
# Lấy tất cả giá trị duy nhất của cấp độ 'student'
student_values = multiIndex.levels[multiIndex.names.index('student')]
# Kiểm tra giá trị có tồn tại trong cấp độ không
'John' in multiIndex.levels[1] # True
# Số giá trị duy nhất mỗi cấp độ
[len(level) for level in multiIndex.levels] # [5, 5]