У меня есть еженедельные данные о продажах
Sales weekNum
83 1
139 2
207 3
278 4
274 5
291 6
319 7
305 8
Я хочу вычислить среднее значение за первые 4 недели и вставить его в индекс недели с 5 по 8
И я хочу, чтобы мой выходной набор данных выглядел так, как показано ниже
Sales weekNum 4-PreviousWeekAverage
83 1
139 2
207 3
278 4
274 5 176.75
291 6 176.75
319 7 176.75
305 8 176.75
Точно так же я хочу вычислить среднее значение за 8 недель и вставить его в индекс от 5 до 8
Я пытался
for i in [4, 8]:
newColumnName1 = '%s-PreviousWeekAverage' % i
df[newColumnName1] = np.nan
for ix in df.index:
if ix - i >= 0:
df.loc[ix, newColumnName1] = np.mean(sampledf.loc[ix-i:ix-1,'Sales'])
Однако мне возвращается скользящая средняя, как показано ниже
Sales weekNum 4-PreviousWeekAverage
83 1
139 2
207 3
278 4
274 5 176.75
291 6 224.5
319 7 262.5
305 8 290.5
У меня проблема с циклом, я не могу определить правильный сценарий. Следовательно, оценю помощь.