您可以使用:
df.loc[0, 'diff'] = df.loc[0, 'val'] * 0.4for i in range(1, len(df)): df.loc[i, 'diff'] = (df.loc[i, 'val'] - df.loc[i-1, 'diff']) * 0.4 + df.loc[i-1, 'diff']print (df) id_ val diff0 11111 12 4.80001 12003 22 11.68002 88763 19 14.60803 43721 77 39.5648
输入取决于先前步骤的结果的计算的迭代性质使向量化变得复杂。您也许可以将apply与功能与循环进行相同计算的函数一起使用,但是在幕后这也将是循环。



