擅长:python、mysql、java
<p>也许是这样</p>
<pre><code>df = pd.DataFrame({'A':np.arange(5,10,1)})
def retention( df,variablename,adstock_rate ):
result=[df[variablename][0]]+[adstock_rate * last_a + this_a for this_a, last_a in zip(df[variablename][1:], df[variablename])]
outname=variablename+"_RET"+str(int(adstock_rate*100))
df[outname]=result
return result
retention(df,'A',0.5)
</code></pre>
<p>结果:</p>
<pre><code> A A_RET50
0 5 5.0
1 6 8.5
2 7 10.0
3 8 11.5
4 9 13.0
</code></pre>