我知道有一种方法 .argmax() 可以返回轴上最大值的索引。
但是,如果我们想获得轴上 10 个最高值的索引怎么办?
这怎么可能实现?
例如:
data = pd.DataFrame(np.random.random_sample((50, 40)))
您可以使用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
试试这个。这将在一行中取 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:])
IIUC,比如说,如果你想获得前 10 个最大列数的索引col
:
data[col].nlargest(10).index