Python 按系列值的降序重新索引多索引的索引

Python 按系列值的降序重新索引多索引的索引,python,pandas,Python,Pandas,我有一个多索引的熊猫系列,如: A 385 0.463120 278 0.269023 190 0.244348 818 0.232505 64 0.199640 B 1889 0.381681 1568 0.284957 1543

我有一个多索引的熊猫系列,如:

A           385       0.463120
            278       0.269023
            190       0.244348
            818       0.232505
            64        0.199640
B           1889      0.381681
            1568      0.284957
            1543      0.259003
            1950      0.241432
            1396      0.197692
C           2485      0.859803
            2980      0.823075
            2588      0.774576
            2748      0.613309
            2055      0.607444
E           3081      0.815492
            3523      0.666928
            3638      0.628147
            3623      0.554344
            3400      0.506123
我想用熊猫重新编制第二个索引:

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
即,第二个指数随着系列值的减少而增加,而第一个指数的单个值则减少

有没有办法只用熊猫就能做到这一点?您可以使用:

#创建示例数据
df=pd.DataFrame({'a':list(pd.util.testing.rands_数组(1,4,dtype='O'))*5,
“b”:np.random.rand(20)/.1,
'c':np.random.rand(20)/.01}
)
df.set_索引(['a','b',inplace=True)
df=df.sort_值(['a','c'],升序=[True,False])
df['x']=df.groupby('a').cumcount()+1
df=df.reset_index().set_index(['a','x'])
返回

bc
a x
a 15.0 89.0
2  4.0  84.0
3  2.0  83.0
4  3.0  41.0
5  4.0  30.0
K17.070.0
2  7.0  64.0
3  9.0  46.0
4  6.0  16.0
5  4.0   8.0
p 1 5.0 71.0
2  7.0  70.0
3  6.0  54.0
4  0.0  16.0
5  7.0   1.0
w 16.0 61.0
2  2.0  57.0
3  3.0  53.0
4  6.0  38.0
5  0.0  22.0

第一个索引的单个值递减的确切含义是什么?我的意思是,在第一个索引的单个值内,比如说'a',第二个索引将是一个整数,从1开始,随着序列值的递减而递增,即1代表0.463120,2代表0.269023,3代表0.244348。。。在我在问题中提供的示例中,如果值没有减少怎么办?这不是一个真正的问题。我的意思是,如果“新的第二个指数”从1开始,然后像“前一个第二个指数”那样增加,那就可以了。