Computer >> Máy Tính >  >> Lập trình >> Python

Python Pandas - Trả về MultiIndex với cấp độ được yêu cầu đã bị xóa bằng cách sử dụng tên cấp độ

Để trả lại MultiIndex với mức được yêu cầu đã bị xóa bằng tên cấp, hãy sử dụng MultiIndex.droplevel () và đặt cấp (tên cấp) sẽ bị xóa dưới dạng đối số.

Đầu tiên, hãy nhập các thư viện được yêu cầu -

import pandas as pd

MultiIndex là một đối tượng chỉ mục đa cấp hoặc phân cấp cho các đối tượng gấu trúc. Tạo mảng -

arrays = [[2, 4, 3, 1], ['Peter', 'Chris', 'Andy', 'Jacob']]

Tham số "tên" đặt tên cho mỗi cấp chỉ mục. From_arrays () được sử dụng để tạo MultiIndex -

multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))

Giảm một cấp cụ thể khỏi MultiIndex. Mức sẽ giảm được đặt làm tên mức trong tham số, tức là

# cấp độ tên 'sinh viên' bị bỏ -

print("\nMulti-index after dropping a level...\n",multiIndex.droplevel('student'))

Ví dụ

Sau đây là mã -

import pandas as pd

# MultiIndex is a multi-level, or hierarchical, index object for pandas objects
# Create arrays
arrays = [[2, 4, 3, 1], ['Peter', 'Chris', 'Andy', 'Jacob']]

# The "names" parameter sets the names for each of the index levels
# The from_arrays() is used to create a MultiIndex
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('ranks', 'student'))

# display the MultiIndex
print("The Multi-index...\n",multiIndex)

# get the levels in MultiIndex
print("\nThe levels in Multi-index...\n",multiIndex.levels)

# Drop a specific level from MultiIndex
# The level to be dropped is set as the level name in parameter i.e.
# level name 'student' gets dropped
print("\nMulti-index after dropping a level...\n",multiIndex.droplevel('student'))

Đầu ra

Điều này sẽ tạo ra kết quả sau -

The Multi-index...
MultiIndex([(2, 'Peter'),
            (4, 'Chris'),
            (3,  'Andy'),
            (1, 'Jacob')],
            names=['ranks', 'student'])

The levels in Multi-index...
   [[1, 2, 3, 4], ['Andy', 'Chris', 'Jacob', 'Peter']]

Multi-index after dropping a level...
   Int64Index([2, 4, 3, 1], dtype='int64', name='ranks')