如何计算DataFrame中对应某列前X个最高值行的price列均值
解决方法:提取指定列前X个最高值对应的price列均值
别慌,这个需求用Pandas的内置函数就能轻松搞定,两步就能出结果:
方法一:用nlargest(推荐,大数据量下更高效)
nlargest可以直接筛选出目标列前X个最大值对应的行,接着提取这些行的price列计算均值就好。
举个具体例子,假设你要取TTM_Si列前3个最高值对应的price均值,代码如下:
# 把X替换成你需要的数量,把'TTM_Si'替换成你要参考的目标列(比如TTM_F、Rev_Met都适用) X = 3 target_column = 'TTM_Si' top_x_price_mean = summary_percent_df.nlargest(X, target_column)['price'].mean()
方法二:先排序再取前X行
如果你更习惯用排序的思路,也可以先对目标列降序排序,再取前X行计算均值:
X = 3 target_column = 'TTM_Si' top_x_price_mean = summary_percent_df.sort_values(target_column, ascending=False).head(X)['price'].mean()
用你的数据验证一下
拿你给出的数据集举例,取TTM_Si前3个最高值的行:
- HELE(TTM_Si=0.005513)对应price=0.629727
- REV(TTM_Si=-0.016126)对应price=0.218214
- IPAR(TTM_Si=-0.024999)对应price=0.705969
计算均值:(0.629727 + 0.218214 + 0.705969) / 3 ≈ 0.51797,用上面的代码跑出来结果完全一致。
只要替换X和target_column,就能适配你想要的任意列和任意前X个最大值的需求啦!
内容的提问来源于stack exchange,提问作者TEKOrchestrator
相关产品推荐
相关产品推荐

