Я пытался преобразовать некоторые из моих функций, где я использую цикл for, используя понимание списка.Вот моя первая версия функции,
def adstocked_advertising(data, adstock_rate):
'''
Transforming data with applying Adstock transformations
data - > The dataframe that is being used to create Adstock variables
adstock_rate -> The rate at of the adstock
ex. data['Channel_Adstock'] = adstocked_advertising(data['Channel'], 0.5)
'''
adstocked_advertising = []
for i in range(len(data)):
if i == 0:
adstocked_advertising.append(data[i])
else:
adstocked_advertising.append(data[i] + adstock_rate * adstocked_advertising[i-1])
return adstocked_advertising
Я хочу преобразовать ее в это,
def adstocked_advertising_list(data, adstock_rate):
adstocked_advertising = [data[i] if i == 0 else data[i] + adstock_rate * data[i-1] for i in range(len(data))]
return adstocked_advertising
Однако, при просмотре df после запуска обеих функций я получаю два разных значения,
data['TV_adstock'] = adstocked_advertising_list(data['TV'], 0.5)
data['TV_adstock_2'] = adstocked_advertising(data['TV'], 0.5)
здесь вывод,
data.head()
data.tail()
Я не слишком уверен, почему первые две строки одинаковы, а затем все цифры разные.Я новичок в списке понимания, поэтому я могу что-то здесь упустить.