pandas.MultiIndex.sortlevel#

MultiIndex.sortlevel(level=0, ascending=True, sort_remaining=True, na_position='first')[源代码][源代码]#

在请求的级别对 MultiIndex 进行排序。

这种方法在处理 MultiIndex 对象时非常有用,允许在索引的特定级别进行排序。该函数在排序整个 MultiIndex 的同时保留同一级别内数据的相对顺序。该方法通过 ascending 参数提供灵活性来定义排序顺序,并通过 sort_remaining 参数控制是否也应排序剩余级别。在对需要有序索引的操作(如分组或合并数据集)进行排序时,排序 MultiIndex 可能至关重要。na_position 参数在不同级别一致处理缺失值时非常重要。

参数:
级别类似列表的, int 或 str, 默认值为 0

如果给定一个字符串,必须是级别的名称。如果类似列表,则必须是级别名称或整数。

升序bool, 默认为 True

False 表示按降序排序。也可以是一个列表来指定一个定向排序。

sort_remainingbool, 默认为 True

如果为真,则在按指定 level 排序后,按剩余级别排序。

na_position{‘first’ or ‘last’}, 默认 ‘first’

参数 ‘first’ 将 NaN 放在开头,’last’ 将 NaN 放在末尾。

Added in version 2.1.0.

返回:
sorted_indexpd.MultiIndex

生成的索引。

索引器np.ndarray[np.intp]

原始索引中输出值的索引。

参见

MultiIndex

一个用于 pandas 对象的多级或层次索引对象。

Index.sort_values

排序索引值。

DataFrame.sort_index

按索引排序 DataFrame。

Series.sort_index

按索引对系列进行排序。

示例

>>> mi = pd.MultiIndex.from_arrays([[0, 0], [2, 1]])
>>> mi
MultiIndex([(0, 2),
            (0, 1)],
           )
>>> mi.sortlevel()
(MultiIndex([(0, 1),
            (0, 2)],
           ), array([1, 0]))
>>> mi.sortlevel(sort_remaining=False)
(MultiIndex([(0, 2),
            (0, 1)],
           ), array([0, 1]))
>>> mi.sortlevel(1)
(MultiIndex([(0, 1),
            (0, 2)],
           ), array([1, 0]))
>>> mi.sortlevel(1, ascending=False)
(MultiIndex([(0, 2),
            (0, 1)],
           ), array([0, 1]))