如何在Python中平均最高或最低的'n'值

时间:2018-07-21 22:36:06

标签: python-3.x moving-average top-n

如何计算Python中的平均最高或最低“ n”值?在下面的示例中,column = c2计算最近4天中前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

2 个答案:

答案 0 :(得分:0)

您可以先对值列表进行排序,然后将前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))

答案 1 :(得分:0)

对列表进行排序,获取最后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