我有以下名为 index 的 Pandas DataFrame:

tz
                       521.0
Africa/Cairo             3.0
Africa/Casablanca        1.0
Africa/Ceuta             2.0
Africa/Johannesburg      1.0
dtype: float64

当我应用 index.argsort() 时,我得到如下信息:
tz
                       2
Africa/Cairo           4
Africa/Casablanca      3
Africa/Ceuta           1
Africa/Johannesburg    0
dtype: int64

有人可以向我解释数字:2,4,3,1,0 的来源吗?我知道它们的索引范围从 0 到 4,但我找不到它们的顺序中的任何逻辑。

最佳答案

如果要排序,argsort 返回正在排序的值的索引位置。请记住,这是一个 numpy 函数,将其分配给系列或数据帧索引是错误的。

  • 2 指的是在 2 位置(第 3 个)中的 item 是最小值
  • 这是1.0
  • 4 指的是 4 位置(第 5 个)中的项目是下一个
  • 也是 1.0
  • 3 (4th position) was a 2.0
  • 1 (2nd position) was a 3.0
  • 0(第一个位置)是一个 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
    

    关于python - np.argsort 如何在 Pandas DataFrame 中工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39174810/

    10-12 23:18