首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找top-5的索引,然后索引到另一列。

查找top-5的索引,然后索引到另一列。
EN

Stack Overflow用户
提问于 2018-05-12 08:03:16
回答 2查看 1.6K关注 0票数 1

我有一个包含两个数字列的数据,A& B。我想从col中找到前5位的值,并返回位于前5位的Col B的值。

非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-12 08:05:11

我认为前5行需要DataFrame.nlargestA列,然后选择列B

代码语言:javascript
复制
df = pd.DataFrame({'A':[4,5,26,43,54,36,18,7,8,9],
                   'B':range(10)})

print (df)
    A  B
0   4  0
1   5  1
2  26  2
3  43  3
4  54  4
5  36  5
6  18  6
7   7  7
8   8  8
9   9  9
代码语言:javascript
复制
print (df.nlargest(5, 'A'))
    A  B
4  54  4
3  43  3
5  36  5
2  26  2
6  18  6

a = df.nlargest(5, 'A')['B']
print (a)
4    4
3    3
5    5
2    2
6    6
Name: B, dtype: int64

有排序的替代解决方案:

代码语言:javascript
复制
a = df.sort_values('A', ascending=False)['B'].head(5)
print (a)
4    4
3    3
5    5
2    2
6    6
Name: B, dtype: int64
票数 2
EN

Stack Overflow用户

发布于 2018-05-12 08:07:06

nlargest函数在dataframe上完成您的工作,df.nlargest(#of rows,'column_to_sort')

代码语言:javascript
复制
import pandas
df = pd.DataFrame({'A':[1,1,1,2,2,2,2,3,4],'B':[1,2,3,1,2,3,4,1,1]})
df.nlargest(5,'B')
Out[13]: 
    A      B
6   2      4
2   1      3
5   2      3
1   1      2
4   2      2
# if you want only certain column in the output, the use

df.nlargest(5,'B')['A']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50304103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档