如何平均顶部或底部 'n' 值 Python

How To Average Top Or Bottom 'n' Values In Python

如何计算 Python 中的平均顶部或底部 'n' 值?下例,column = c2 计算最近4天top 2的平均值。

c0     c1     c2
1     2      na
2     2      na
3     3      na
4     5      4
5     6      5.5
6     7      6.5
7     5      6.5
8     4      6.5
9     5      6
10    5      5

您可以先对值列表进行排序,然后将前 n 个值抓取到新列表中。然后通过将列表的总和除以列表中值的数量来平均它们。

n = 2
new_list = [1,5,4,3,2,6]
new_list.sort()
top_vals = new_list[:n]
top_vals_avg = sum(top_vals) / float(len(top_vals))

对列表进行排序,得到最后 n 个数的总和并除以 n:

def avg_of_top_n(l, n):
    return sum(sorted(l)[-n:]) / n
l = [2, 2, 3, 5, 6, 7, 5, 4, 5, 5]
for i in range(4, 11):
    print(avg_of_top_n(l[i - 4: i], 2))

这输出:

4.0
5.5
6.5
6.5
6.5
6.0
5.0