加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 如何在pandas的数据框中检索k个最高值?

发布时间:2020-12-20 12:38:42 所属栏目:Python 来源:网络整理
导读:如何在pandas的数据框中检索k个最高值? 例如,给定DataFrame: b d eUtah 1.624345 -0.611756 -0.528172Ohio -1.072969 0.865408 -2.301539Texas 1.744812 -0.761207 0.319039Oregon -0.249370 1.462108 -2.060141 生成: import numpy as npimport pandas a
如何在pandas的数据框中检索k个最高值?

例如,给定DataFrame:

b         d         e
Utah    1.624345 -0.611756 -0.528172
Ohio   -1.072969  0.865408 -2.301539
Texas   1.744812 -0.761207  0.319039
Oregon -0.249370  1.462108 -2.060141

生成:

import numpy as np
import pandas as pd
np.random.seed(1)
frame = pd.DataFrame(np.random.randn(4,3),columns=list('bde'),index=['Utah','Ohio','Texas','Oregon'])
print(frame)

数据框中的3个最高值是:

> 1.744812
> 1.624345
> 1.462108

解决方法

您可以使用 pandas.DataFrame.stack pandas.Series.nlargest,例如:

In [183]: frame.stack().nlargest(3)
Out[183]:
Texas   b    1.744812
Utah    b    1.624345
Oregon  d    1.462108
dtype: float64

要么:

In [184]: frame.stack().nlargest(3).reset_index(drop=True)
Out[184]:
0    1.744812
1    1.624345
2    1.462108
dtype: float64

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读