如何计算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
答案 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