Jon*_*nas 4 python series pandas
我有一个带有整数索引的pandas系列,我已按其排序(按值),我如何按系列中的位置访问值.
例如:
s_original = pd.Series({0: -0.000213, 1: 0.00031399999999999999, 2: -0.00024899999999999998, 3: -2.6999999999999999e-05, 4: 0.000122})
s_sorted = np.sort(s_original)
In [3]: s_original
Out[3]:
0 -0.000213
1 0.000314
2 -0.000249
3 -0.000027
4 0.000122
In [4]: s_sorted
Out[4]:
2 -0.000249
0 -0.000213
3 -0.000027
4 0.000122
1 0.000314
In [5]: s_sorted[3]
Out[5]: -2.6999999999999999e-05
Run Code Online (Sandbox Code Playgroud)
但我想得到值0.000122即位置 3 的项目.
我该怎么做?
更换线
b = np.sort(a)
Run Code Online (Sandbox Code Playgroud)
同
b = pd.Series(np.sort(a), index=a.index)
Run Code Online (Sandbox Code Playgroud)
这将对值进行排序,但保留索引.
编辑:
要获取已排序系列中的第四个值:
np.sort(a).values[3]
Run Code Online (Sandbox Code Playgroud)
您可以使用iget按位置检索:(
实际上,该方法是专门为克服这种歧义而创建的。)
In [1]: s = pd.Series([0, 2, 1])
In [2]: s.sort()
In [3]: s
Out[3]:
0 0
2 1
1 2
In [4]: s.iget(1)
Out[4]: 1
Run Code Online (Sandbox Code Playgroud)
.
.ix使用整数索引的行为在熊猫“陷阱”中注明:
在 Pandas 中,我们的一般观点是标签比整数位置更重要。因此,对于整数轴索引,只能使用标准工具(如 )进行基于标签的索引
.ix。这个深思熟虑的决定是为了防止歧义和细微的错误(许多用户报告说,当 API 更改停止“回退”基于位置的索引时发现了错误)。
.ix没有歧义。例如:
In [11]: s1 = pd.Series([0, 2, 1], list('abc'))
In [12]: s1
Out[12]:
a 0
b 2
c 1
In [13]: s1.sort()
In [14]: s1
Out[14]:
a 0
c 1
b 2
In [15]: s1.ix[1]
Out[15]: 1
Run Code Online (Sandbox Code Playgroud)