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

Python Pandas - Xóa cấp độ khỏi MultiIndex bằng chỉ số

Để xóa một cấp độ khỏi MultiIndex sử dụng chỉ số cấp độ (level number), chúng ta dùng phương thức MultiIndex.droplevel() với tham số là chỉ số nguyên (0-based).

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 chỉ số

Xóa cấp độ 1 (cấp độ thứ 2 - 'student'):

print("\nMultiIndex sau khi xóa cấp độ 1:\n", multiIndex.droplevel(1))

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 độ 1 (student)
print("\nMultiIndex sau khi xóa cấp độ 1:\n", multiIndex.droplevel(1))

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')

So sánh các cách xóa cấp độ

Cách gọiMô tảVí dụ
droplevel(0)Xóa cấp độ đầu tiên (chỉ số)Xóa 'ranks'
droplevel('student')Xóa cấp độ tên 'student'Tương đương droplevel(1)
droplevel([0, 1])Xóa cấp độ 0 và 1Xóa cả 2, lỗi nếu chỉ còn 1 cấp

Kết quả giống hệt nhau whether dùng tên hay chỉ số. Chọn cách nào tùy theo code dễ đọc hơn.