pandas.MultiIndex.get_level_values#

MultiIndex.get_level_values(level)[source]#

返回请求 level 的标签值向量。

返回向量的长度等于索引的长度。 get_level_values 方法是从 MultiIndex 中提取特定级别值的关键实用工具。此函数在处理多级数据时特别有用,它允许您隔离和操作单个级别,而无需处理整个 MultiIndex 结构的复杂性。它无缝处理基于整数和字符串的级别访问,为与数据交互提供了灵活性。此外,此方法通过将结果适当地转换为合适的数据类型,确保返回的 Index 即使在存在缺失值的情况下也能保持原始数据的完整性。

参数:
levelint or str

level 是 MultiIndex 中级别的整数位置,或者是级别的名称。

返回:
索引

Values 是此 MultiIndex 的一个级别,已转换为单个 Index(或其子类)。

另请参阅

MultiIndex

pandas 对象的多元索引或分层索引。

索引

用于索引和对齐的不可变序列。

MultiIndex.remove_unused_levels

从当前 MultiIndex 创建新的 MultiIndex,以删除未使用的级别。

注意

如果级别包含缺失值,结果可能会转换为 float,并将缺失值指定为 NaN。这是因为该级别被转换为常规 Index

示例

创建 MultiIndex

>>> mi = pd.MultiIndex.from_arrays((list("abc"), list("def")))
>>> mi.names = ["level_1", "level_2"]

通过提供整数或名称作为级别来获取级别值

>>> mi.get_level_values(0)
Index(['a', 'b', 'c'], dtype='str', name='level_1')
>>> mi.get_level_values("level_2")
Index(['d', 'e', 'f'], dtype='str', name='level_2')

如果级别包含缺失值,级别的返回类型可能会转换为 float

>>> pd.MultiIndex.from_arrays([[1, None, 2], [3, 4, 5]]).dtypes
level_0    int64
level_1    int64
dtype: object
>>> pd.MultiIndex.from_arrays([[1, None, 2], [3, 4, 5]]).get_level_values(0)
Index([1.0, nan, 2.0], dtype='float64')