Медиана - это не только среднее значение в отсортированном диапазоне?
Итак, если ваш список stock_data
:
last_thirty = stock_data[-30:]
median = sorted(last_thirty)[15]
Теперь вам просто нужно найти и исправить отдельные ошибки, а также обработать случай, когда stock_data
меньше 30 элементов ...
давайте попробуем это немного:
def rolling_median(data, window):
if len(data) < window:
subject = data[:]
else:
subject = data[-30:]
return sorted(subject)[len(subject)/2]