引用Dataframe计算中的前一行(Pandas)

时间:2016-05-26 23:07:47

标签: python-3.x pandas dataframe

我正在尝试进行计算,我在其中添加一个新的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

这只是感觉笨拙和笨拙,而且我正在创建两个新的(不必要的)列。

有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

尝试:

df['Prev. 2 Avg'] = df.Input.rolling(2).mean().shift()