from collections import deque

def moving_averages(values, k):
    if k < 1:
        raise ValueError('k must be positive')
    window = deque()
    total = 0
    output = []
    for value in values:
        window.append(value)
        total += value
        if len(window) > k:
            total -= window.popleft()
        output.append(total / len(window))
    return output
