首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么DataFrame.nlargest不订购一个结果?

问为什么DataFrame.nlargest不订购一个结果?
EN

Stack Overflow用户
提问于 2018-03-30 09:56:30
回答 1查看 861关注 0票数 2

下面是Pandas文档V0.22.0中的一个示例:

代码语言:javascript
复制
In [330]: df = pd.DataFrame({'a': [-2, -1, 1, 10, 8, 11, -1],
                             'b': list('abdceff'),
                             'c': [1.0, 2.0, 4.0, 3.2, np.nan, 3.0, 4.0]})

In [332]: df.nlargest(5, ['a', 'c'])
Out[332]: 
     a  b    c
 6  -1  f  4.0
 5  11  f  3.0
 3  10  c  3.2
 4   8  e  NaN
 2   1  d  4.0

为什么结果不是先按'a‘排序,然后再按'c’排序?

同时,单列应用nlargest()总是对结果排序:

代码语言:javascript
复制
df.nlargest(5,['a'])
Out[110]: 
     a  b    c
5  11.0  f  3.0
3  10.0  c  3.2
4   8.0  e  NaN
2   1.0  d  4.0
1  -1.0  b  2.0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-30 10:03:37

这不是一个错误,但应该检查这里。

part 不对值进行排序(这是其速度更快的原因之一)。 你以后可以排序。

代码语言:javascript
复制
In [32]: df.sort_values(['a', 'c'], ascending=False).head(5)
Out[32]:
    a  b    c
5  11  f  3.0
3  10  c  3.2
4   8  e  NaN
2   1  d  4.0
6  -1  f  4.0

In [33]: df.nlargest(5, ['a', 'c']).sort_values(['a', 'c'], ascending=False)
Out[33]:
    a  b    c
5  11  f  3.0
3  10  c  3.2
4   8  e  NaN
2   1  d  4.0
6  -1  f  4.0
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49572245

复制
相关文章

相似问题

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