我正在尝试进行计算,我在其中添加一个新的DataFrame列,用于计算前两个值的平均值。这是期望的结果:
Input Prev. 2 Avg
0 2 NaN
1 2 NaN
2 3 2.0
3 3 2.5
4 4 3.0
5 4 3.5
不幸的是,我不知道如何引用前面的行进行计算。它可以工作,如果我添加两个额外的列,一个是输入移位1,另一个移位2.然后我可以进行计算:
df["Input1"] = df["Input"].shift(1)
df["Input2"] = df["Input"].shift(2)
df["Prev. 2 Avg"] = (df["Input1"] + df["Input2"])/2
这只是感觉笨拙和笨拙,而且我正在创建两个新的(不必要的)列。
有什么建议吗?
谢谢!
答案 0 :(得分:4)
尝试:
df['Prev. 2 Avg'] = df.Input.rolling(2).mean().shift()