вывести на экран разницу значений индексов в цикле

Прошу помочь. Уровень изучения - начальный. Третий день не могу понять в чем я ошибаюсь при написании кода, второй раз прошла ранее изученные материалы, но ошибки не поняла своей. Без этого не могу пойти дальше.. До этого пропустила решение пары задач, потом вернулась и уже решила.

Задача такая:

  1. Список campaign_weeks хранит номера недель, в которые проводились рекламные кампании. Они соответствуют индексам значений в списках payments и installs. Для каждой недели в campaign_weeks посчитайте разницу между числом установок (installs) в эту неделю и в предыдущую. Чтобы обратиться к значению предыдущей недели, вычтите из индекса единицу прямо в квадратных скобках. Результаты сохраните в списке installs_from_ads, чтобы функция print() вывела их на экран. Вот такая подсказка и вроде я все сделала в соответствии с ней, но решение не верно.

Объявите переменную installs_from_ads и сохраните в ней пустой список. Затем напишите цикл for: для каждого элемента в списке campaign_weeks найдите разницу значений installs[...] и installs[... - 1] и добавьте результат в список installs_from_ads методом .append(). Вместо ... подставьте название переменной цикла.

import pandas
data = pandas.read_csv('app_stats.csv')

payments = list(data['payments']) # список с числом платежей
installs = list(data['installs']) # список с числом установок

campaign_weeks = [7, 9, 13, 15, 17, 19, 29, 31, 33, 45]

installs_from_ads=[]

for i in range(len(campaign_weeks)):
    
    installs_from_ads.append(installs[i]-installs[i-1])
    
print(installs_from_ads)

Ответы (2 шт):

Автор решения: MBo
for i in range(1, len(campaign_weeks)):

иначе для первой недели вы получаете разницу с последней.

Нужно ли что-то делать для первой недели (допустим, installs[0]) вносить в список - в условии не определено

→ Ссылка
Автор решения: CrazyElf
campaign_weeks = [7, 9, 13, 15, 17, 19, 29, 31, 33, 45]

installs_from_ads=[]

for i in range(len(campaign_weeks)):
    
    installs_from_ads.append(installs[i]-installs[i-1])

Да, жалко я раньше не увидел этот вопрос. Суть проблемы действительно в том, что вы совсем не используете содержимое campaign_weeks, а нужно его использовать:

for i in campaign_weeks:
    ...

Хотя на более продвинутом уровне эта задача решается проще, примерно так:

installs_from_ads = data['installs'].diff().loc[campaign_weeks].to_list()
→ Ссылка