Để xóa một cấp độ cụ thể khỏi MultiIndex sử dụng tên cấp độ, chúng ta dùng phương thức MultiIndex.droplevel() với tham số là tên cấp độ cần xóa.
Các bước thực hiện
1. Import thư viện
import pandas as pd
2. Tạo MultiIndex 2 cấp độ
arrays = [[2, 4, 3, 1], ['Peter', 'Chris', 'Andy', 'Jacob']]
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))
3. Xóa cấp độ bằng tên
Xóa cấp độ 'student', giữ lại 'ranks':
print("\nMultiIndex sau khi xóa cấp độ 'student':\n", multiIndex.droplevel('student'))
Ví dụ hoàn chỉnh
import pandas as pd
arrays = [[2, 4, 3, 1], ['Peter', 'Chris', 'Andy', 'Jacob']]
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))
print("MultiIndex gốc:\n", multiIndex)
print("\nCác cấp độ:\n", multiIndex.levels)
# Xóa cấp độ 'student'
print("\nMultiIndex sau khi xóa 'student':\n", multiIndex.droplevel('student'))
Kết quả đầu ra
MultiIndex gốc: MultiIndex([(2, 'Peter'), (4, 'Chris'), (3, 'Andy'), (1, 'Jacob')], names=['ranks', 'student']) Các cấp độ: [[1, 2, 3, 4], ['Andy', 'Chris', 'Jacob', 'Peter']] MultiIndex sau khi xóa cấp độ: Int64Index([2, 4, 3, 1], dtype='int64', name='ranks')
Các cách sử dụng droplevel()
# Xóa bằng tên cấp độ
multiIndex.droplevel('student')
# Xóa bằng chỉ số (0-based)
multiIndex.droplevel(1)
# Xóa nhiều cấp độ
multiIndex.droplevel(['rank', 'student'])
multiIndex.droplevel([0, 1])
Tất cả đều trả về Index đơn cấp nếu chỉ còn 1 cấp độ, hoặc MultiIndex mới nếu còn ≥2 cấp độ.