pandas.MultiIndex.get_loc_level#

MultiIndex.get_loc_level(key, level=0, drop_level=True)[源代码][源代码]#

获取请求的标签/级别的定位和切片索引。

get_loc_level 方法是 get_loc 的更高级形式,允许用户不仅指定标签或标签序列,还指定要在其中搜索的级别。当您需要隔离 MultiIndex 的特定部分时,此方法非常有用,无论是为了进一步分析还是为了对数据进行切片和切块。该方法提供了灵活性,可以根据 drop_level 参数在结果索引中保留或删除级别。

参数:
关键标签或标签序列

要获取位置的标签。

级别int/级别名称或其列表,可选

要考虑的 MultiIndex 中的级别。如果未提供,默认为第一个级别。

drop_level布尔值, 默认为 True

如果 False ,生成的索引将不会删除任何级别。

返回:
tuple

一个2元组,其中元素为:

元素 0: int, slice 对象或布尔数组。

元素 1: 结果切片的多索引/索引。如果键包含所有级别,这将变为 None

参见

MultiIndex.get_loc

获取标签或标签元组的位置。

MultiIndex.get_locs

获取标签/切片/列表/掩码或此类序列的位置。

例子

>>> mi = pd.MultiIndex.from_arrays([list("abb"), list("def")], names=["A", "B"])
>>> mi.get_loc_level("b")
(slice(1, 3, None), Index(['e', 'f'], dtype='object', name='B'))
>>> mi.get_loc_level("e", level="B")
(array([False,  True, False]), Index(['b'], dtype='object', name='A'))
>>> mi.get_loc_level(["b", "e"])
(1, None)