pandas.MultiIndex.remove_unused_levels#
- MultiIndex.remove_unused_levels()[源码]#
从当前 MultiIndex 创建新的 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']])