gpt4 book ai didi

python - 为什么 DataFrame.nlargest 没有排序结果?

转载 作者:太空宇宙 更新时间:2023-11-04 02:29:24 25 4
gpt4 key购买 nike

这是 Pandas 文档 v0.22.0 中的示例:

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()总是对结果进行排序:

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

最佳答案

这不是错误,但在意料之中,检查 here :

nlargest doesn't sort the values (which is part of why it's faster).

You can sort afterwards.

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

关于python - 为什么 DataFrame.nlargest 没有排序结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49572245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com