I have the following pandas series:
>>>ser
num let
0 a 12
b 11
c 18
1 a 10
b 8
c 5
2 a 8
b 9
c 6
3 a 15
b 10
c 11
当我使用argsort时,我会得到以下结果:
>>>ser.argsort()
num let
0 a 5
b 8
c 4
1 a 6
b 7
c 3
2 a 10
b 1
c 11
3 a 0
b 9
c 2
我不太理解。ser[(1, 'c')] 不应该是从 argsort 中获得最低值吗?
而且,按照 ser.argsort() 的顺序排序似乎也很奇妙:
>>>ser.iloc[ser.argsort()]
num let
1 c 5
2 c 6
1 b 8
2 a 8
b 9
1 a 10
3 b 10
0 b 11
3 c 11
0 a 12
3 a 15
0 c 18
希望能得到您的帮助来解决这个问题,非常感谢。
min(ser) = ser[(1, 'c')] = 5
,我期望ser.argsort()[(1, 'c')]
等于0(即在排序后的序列中是第一个值)。 - Eranser.argsort()
返回原始索引感到困惑,我认为这非常不幸 :) - Eranser.sort_values()
更快。 - Eran