np.argsort如何在pandas数据框中工作

Kar*_*van 4 python numpy python-3.x pandas

我有一个名为"index"的pandas数据帧

tz
                       521.0
Africa/Cairo             3.0
Africa/Casablanca        1.0   
Africa/Ceuta             2.0
Africa/Johannesburg      1.0
dtype: float64 
Run Code Online (Sandbox Code Playgroud)

当我申请index我得到这样的东西

tz
                       2
Africa/Cairo           4
Africa/Casablanca      3
Africa/Ceuta           1
Africa/Johannesburg    0
dtype: int64
Run Code Online (Sandbox Code Playgroud)

谁能解释数字"2,4,3,1,0"是怎么来的?我知道有从0到4的索引范围,但我想不出有顺序的逻辑.

piR*_*red 7

argsort如果要对它们进行排序,则返回要排序的值的索引位置.请记住,这是一个numpy函数,它对系列或数据框索引的赋值是错误的.

  • 2是指2位置(第3)中的项目是最小的
    • 这是 1.0
  • 4是指4下一个位置(第5个) 的项目
    • 1.0
  • 3 (第4位)是一个 2.0
  • 1 (第2位)是一个 3.0
  • 0(第1位)是a 521.0和最大值

分配给数组并用作切片更合适

a = s.values.argsort()
s.iloc[a]

tz
Africa/Casablanca        1.0
Africa/Johannesburg      1.0
Africa/Ceuta             2.0
Africa/Cairo             3.0
                       521.0
Name: value, dtype: float64
Run Code Online (Sandbox Code Playgroud)