You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas按Series值降序重排MultiIndex的二级索引

用Pandas重排MultiIndex Series的实现方案

当然可以只用Pandas完成这个需求!咱们直接上实操步骤,一步步把你的MultiIndex Series转换成想要的格式:

第一步:还原原始数据

首先得把你给出的文本数据转换成Pandas的MultiIndex Series,方便后续操作:

import pandas as pd

# 构造原始数据值
data_values = [0.463120, 0.269023, 0.244348, 0.232505, 0.199640,
               0.381681, 0.284957, 0.259003, 0.241432, 0.197692,
               0.859803, 0.823075, 0.774576, 0.613309, 0.607444,
               0.815492, 0.666928, 0.628147, 0.554344, 0.506123]

# 构造原始的MultiIndex
multi_index = pd.MultiIndex.from_tuples([
    ('A', 385), ('A', 278), ('A', 190), ('A', 818), ('A', 64),
    ('B', 1889), ('B', 1568), ('B', 1543), ('B', 1950), ('B', 1396),
    ('C', 2485), ('C', 2980), ('C', 2588), ('C', 2748), ('C', 2055),
    ('E', 3081), ('E', 3523), ('E', 3638), ('E', 3623), ('E', 3400)
], names=['一级索引', '原二级索引'])

# 创建原始Series
original_series = pd.Series(data_values, index=multi_index)

第二步:按需求重排索引和值

核心操作分两步:组内按值降序排序 + 替换二级索引为递增序号:

# 1. 按一级索引分组,组内对值进行降序排序
sorted_series = original_series.groupby(level='一级索引', group_keys=False).sort_values(ascending=False)

# 2. 为每个组生成从1开始的递增二级索引(cumcount从0开始,所以加1)
new_secondary_index = sorted_series.groupby(level='一级索引').cumcount() + 1

# 3. 替换原来的二级索引
final_series = sorted_series.set_levels(new_secondary_index, level='原二级索引')

# (可选)如果需要把一级索引的'E'改成'D',执行下面这行
final_series.index = final_series.index.set_levels(['A', 'B', 'C', 'D'], level='一级索引')

最终效果验证

打印final_series就能得到你想要的格式:

一级索引  原二级索引
A       1          0.463120
        2          0.269023
        3          0.244348
        4          0.232505
        5          0.199640
B       1          0.381681
        2          0.284957
        3          0.259003
        4          0.241432
        5          0.197692
C       1          0.859803
        2          0.823075
        3          0.774576
        4          0.613309
        5          0.607444
D       1          0.815492
        2          0.666928
        3          0.628147
        4          0.554344
        5          0.506123
dtype: float64

整个过程完全依赖Pandas的分组、排序和索引操作,不需要额外工具~

内容的提问来源于stack exchange,提问作者mathcounterexamples.net

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:42:23