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

Python Pandas - Xóa một cấp độ khỏi MultiIndex bằng tên cấp độ

Để 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 độ.