如何在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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。