pandas.MultiIndex.remove_unused_levels#

MultiIndex.remove_unused_levels()[源代码][源代码]#

从当前索引创建一个新的 MultiIndex,删除未使用的级别。

未使用的级别是指在标签中未表示的级别。生成的 MultiIndex 将具有相同的外观,即相同的 .values 和顺序。它也将与原始的 .equals() 相同。

remove_unused_levels 方法在你有一个带有层次级别的 MultiIndex,但由于过滤或子集操作,某些级别不再需要的情况下非常有用。通过移除未使用的级别,生成的 MultiIndex 变得更加紧凑和高效,这可以提高后续操作的性能。

返回:
MultiIndex

一个新的 MultiIndex,删除了未使用的级别。

参见

MultiIndex.droplevel

从 MultiIndex 中移除指定的层级。

MultiIndex.reorder_levels

重新排列 MultiIndex 的层级。

MultiIndex.set_levels

在 MultiIndex 上设置新的级别。

例子

>>> mi = pd.MultiIndex.from_product([range(2), list("ab")])
>>> mi
MultiIndex([(0, 'a'),
            (0, 'b'),
            (1, 'a'),
            (1, 'b')],
           )
>>> mi[2:]
MultiIndex([(1, 'a'),
            (1, 'b')],
           )

第一级的0没有表示出来,可以被移除。

>>> mi2 = mi[2:].remove_unused_levels()
>>> mi2.levels
FrozenList([[1], ['a', 'b']])