Skip to main content
 首页 » 编程设计

python之计算每行的 "best of 4"平均值

2025年05月04日11tintown

如何从 pandas 数据帧中的每一行的 N 单元中找到最佳 n 的平均值?

查看下面的数据框,我想在其中找到 6 个中最好的 4 个分数的平均值(n=4,N=6):

df = pd.DataFrame({'stu1' : [17,19,12,17,13,13],  
               'stu2' : [20,18,15,17,15,0],  
               'stu3' : [16,19,0,16,0,0], 
               'stu4' : [0,0,0,0,0,0], 
               'stu5' : [0,8,14,0,7,9]}, 
               index = 'q1 q2 q3 q4 q5 q6'.split()).T 

st1 中最好的 4 个的平均值将基于以下值:17、19、17、13 和 16.50。 st3 将基于 16、19、0、16,结果为 12.75。

如何对所有行进行计算?

请您参考如下方法:

魔方

df.stack().sort_values().groupby(level=0).tail(4).mean(level=0) 
 
stu4     0.00 
stu3    12.75 
stu5     9.50 
stu1    16.50 
stu2    17.50 
dtype: float64