我的pandas数据框名为“index”,如
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的索引范围,但我想不出有顺序的逻辑。
答案 0 :(得分:6)
argsort
返回要排序的值的索引位置。请记住,这是一个numpy函数,它对系列或数据框索引的赋值是错误的。
2
指的是2
位置(第3位)中的项目是最小值
1.0
4
指的是下一个4
位置(第5个)中的项目
1.0
3
(第4位)是2.0
1
(第二位)是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
答案 1 :(得分:0)
是的,正在进行一些奇怪的排序。中的例子
the argsort
docs:
x = np.array([3, 1, 2])
np.argsort(x)
给出排序顺序:
array([1, 2, 0])
人们会认为最终的顺序是 2,3,1。但是 x[np.argsort(x)]
给出了 1,2,3。去图。