У меня есть фрейм данных с двумя столбцами «actp» и «modr»: «actp» содержит фактический ценовой ряд, «modr» содержит прогнозируемый доход для этого ряда.Я хочу создать третий столбец 'modp', который принимает значения ценового ряда, когда они существуют (не NaN), или который умножает значение предыдущего ценового ряда 'actp' на 1 + log return ('modr'), чтобы сгенерировать прогнозируемое значение цены('modp'), а затем умножьте запаздывающие значения 'modp' на результат.Это простая проблема, и ее достаточно легко решить с помощью цикла for.Я хотел бы знать, как может выглядеть эффективное и элегантное решение, так как мне нужно, чтобы оно было оптимизировано для скорости и масштабируемости.
Я могу сделать это с помощью цикла for, хотя в настоящее время оно не добавляет фактическое значение.значение от 'actp' до 'modp', когда в 'actp' есть значение.
for i in range(2,5):
df['modp'].iloc[i] = df['actp'].iloc[i-1] * np.exp(df['modr'].iloc[i])
df['actp'].iloc[i] = df['modp'].iloc[i]
исходные данные
Ожидаемый результат