Python Pandas – 使用级别名称返回删除多个级别的MultiIndex
要使用级别名称返回删除多个级别的MultiIndex,请使用 MultiIndex.droplevel() 方法,并将需要删除的多个层级(即级别名称)设置为参数。
首先,导入所需的库−
import pandas as pd
MultiIndex是pandas对象的多级索引对象。创建数组−
arrays = [[2, 4, 3, 1], ['Peter', 'Chris', 'Andy', 'Jacob'], [50, 30, 40, 70]]
“names”参数为每个索引级别设置名称。 from_arrays()用于创建MultiIndex−
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('rank', 'student', 'points'))
从MultiIndex中删除特定级别。要删除的级别设置为参数中的级别名称,即级别名称’student’和’rank’被删除−
print("\n删除两个级别后的MultiIndex...\n",multiIndex.droplevel(['rank', 'student']))
示例
以下是代码−
import pandas as pd
# MultiIndex是pandas对象的多级索引对象
# 创建数组
arrays = [[2, 4, 3, 1], ['Peter', 'Chris', 'Andy', 'Jacob'], [50, 30, 40, 70]]
# "names"参数为每个索引级别设置名称
# 用from_arrays()创建MultiIndex
multiIndex = pd.MultiIndex.from_arrays(arrays, names=('rank', 'student', 'points'))
# 显示MultiIndex
print("MultiIndex:\n",multiIndex)
# 获取MultiIndex中的级别
print("\nMultiIndex的级别:\n",multiIndex.levels)
# 从MultiIndex中删除特定级别
# 要删除的级别设置为参数中的级别名称,即级别名称“student”和“rank”将被删除
print("\n删除两个级别后的MultiIndex...\n",multiIndex.droplevel(['rank', 'student']))
输出
这将产生以下输出−
MultiIndex:
MultiIndex([(2, 'Peter', 50),
(4, 'Chris', 30),
(3, 'Andy', 40),
(1, 'Jacob', 70)],
names=['rank', 'student', 'points'])
MultiIndex的级别:
[[1, 2, 3, 4], ['Andy', 'Chris', 'Jacob', 'Peter'], [30, 40, 50, 70]]
删除两个级别后的MultiIndex...
Int64Index([50, 30, 40, 70], dtype='int64', name='points')