Что касается моего комментария выше:
"Сколько элементов у вас в каждом файле? ... Если бы каждый файл содержал тысячи точек сетки, я бы начал с сортировки различных точек сеткидля разделения файлов. Каждый файл будет содержать одну и ту же точку сетки для всех дат, отсортированных по дате. Таким образом, было бы просто загрузить весь файл одной точки сетки и рассчитать для него скользящее среднее. "
Теперь, когда у вас есть файл для одной точки сетки, я бы загрузил данные в список и выполнил этот простой расчет скользящего среднего.(Так как у вас есть доступ ко всему набору данных, вы можете использовать этот код. Для случаев, когда среднее значение вычисляется во время выполнения, а история результатов отсутствует, вы можете использовать указанные здесь алгоритмы: Википедия - Скользящее среднее * )
#Generate a list of 10 items
my_gridpoints_data=[x for x in range(1, 11)]
print(my_gridpoints_data)
#The average calculation window is set to 3, so the average is for 3 items at a time
avg_window_width: int = 3
avg: float = 0.0
sum: float = 0.0
# Calculate the average of the first 3 items (avg_window_width is 3)
for pos in range(0, avg_window_width):
sum = sum + my_gridpoints_data[pos]
avg = sum / avg_window_width
print(avg)
# Then move the window of the average by subtracting the leftmost item
# and adding a new item from the right
# Do this until the calculation window reaches the list's last item
for pos in range(avg_window_width, my_gridpoints_data.__len__()):
sum = sum + my_gridpoints_data[pos] - my_gridpoints_data[pos - avg_window_width]
avg = sum/avg_window_width
print(avg)
Результат будет:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
2.0
3.0
4.0
5.0
6.0
7.0
8.0