3

我知道有一种方法 .argmax() 可以返回轴上最大值的索引。

但是,如果我们想获得轴上 10 个最高值的索引怎么办?

这怎么可能实现?

例如:

data = pd.DataFrame(np.random.random_sample((50, 40)))
4

3 回答 3

0

您可以使用argsort

s = pd.Series(np.random.permutation(30))
sorted_indices = s.argsort()
top_10 = sorted_indices[sorted_indices < 10]
print(top_10)

输出:

3     9
4     1
6     0
8     7
13    4
14    2
15    3
19    8
20    5
24    6
dtype: int64
于 2019-04-11T22:40:29.207 回答
0

试试这个。这将在一行中取 10 个最大值并将它们放入数据框中。

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.random_sample((50, 40)))
df2 = pd.DataFrame(np.sort(df.values)[:,-10:])
于 2019-04-11T22:41:47.490 回答
0

IIUC,比如说,如果你想获得前 10 个最大列数的索引col

data[col].nlargest(10).index
于 2019-04-11T22:31:33.480 回答