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

如何在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

相关文章

转载:一文讲述Pandas库的数据读取、数据获取、数据拼接、数...
Pandas是一个开源的第三方Python库,从Numpy和Matplotlib的基...
整体流程登录天池在线编程环境导入pandas和xrld操作EXCEL文件...
 一、numpy小结             二、pandas2.1为...
1、时间偏移DateOffset对象DateOffset类似于时间差Timedelta...
1、pandas内置样式空值高亮highlight_null最大最小值高亮背景...