你能解释一下输出吗:diff.sort_values(升序=False).index.astype



谁能解释以下陈述。

list(diff.sort_values(ascending=False).index.astype(int)[0:5])

输出: Int64Index([24, 26, 17, 2, 1], dtype='int64'(

它首先排序,但是索引在做什么,我如何得到 24、26、17、2 ,1

?差速器是系列

ipdb> diff
1     0.017647
2     0.311765
3    -0.060000
4    -0.120000
5    -0.040000
6    -0.120000
7    -0.190000
8    -0.200000
9    -0.100000
10   -0.011176
11   -0.130000
12    0.008824
13   -0.060000
14   -0.090000
15   -0.060000
16    0.008824
17    0.341765
18   -0.140000
19   -0.050000
20   -0.060000
21   -0.040000
22   -0.210000
23    0.008824
24    0.585882
25   -0.060000
26    0.555882
27   -0.031176
28   -0.060000
29   -0.170000
30   -0.220000
31   -0.170000
32   -0.040000
dtype: float64

你的代码返回按降序排序的前 5 个值的index值列表Series

在熊猫系列中打印的第一个"列"称为index,因此您的代码在排序后将索引的值转换为整数并通过索引切片。

print (diff.sort_values(ascending=False))
24    0.585882
26    0.555882
17    0.341765
2     0.311765
1     0.017647
12    0.008824
23    0.008824
16    0.008824
10   -0.011176
27   -0.031176
32   -0.040000
21   -0.040000
5    -0.040000
19   -0.050000
15   -0.060000
3    -0.060000
13   -0.060000
25   -0.060000
28   -0.060000
20   -0.060000
14   -0.090000
9    -0.100000
6    -0.120000
4    -0.120000
11   -0.130000
18   -0.140000
31   -0.170000
29   -0.170000
7    -0.190000
8    -0.200000
22   -0.210000
30   -0.220000
Name: a, dtype: float64

print (diff.sort_values(ascending=False).index.astype(int))
Int64Index([24, 26, 17,  2,  1, 12, 23, 16, 10, 27, 32, 21,  5, 19, 15,  3, 13,
25, 28, 20, 14,  9,  6,  4, 11, 18, 31, 29,  7,  8, 22, 30],
dtype='int64')
print (diff.sort_values(ascending=False).index.astype(int)[0:5])
Int64Index([24, 26, 17, 2, 1], dtype='int64')
print (list(diff.sort_values(ascending=False).index.astype(int)[0:5]))
[24, 26, 17, 2, 1]

以下是正在发生的事情:

  • diff.sort_values(升序( - 对系列进行排序。默认情况下,升序为 True,但您将其保留为 false,因此它按降序返回排序的序列。
  • 熊猫。Series.index 返回索引的行标签(在您的情况下为排序数字 1 - 32(
  • .as_type(int( 类型转换将索引行标签作为整数。
  • [0: 5] 仅选取单元格 0 到 5

让我知道这是否有帮助!

最新更新