创建无循环的子集数据帧

时间:2018-07-17 22:49:38

标签: python python-2.7 pandas dataframe

假设我们有熊猫数据框df

             Foo       Bar
2018-01-01  0.568658  0.504093
2018-01-02  0.244716  0.422261
2018-01-03 -2.254264 -0.680178
2018-01-04  0.110540 -0.477153
2018-01-05 -1.342594 -0.005422
2018-01-06  1.219136  0.864694
2018-01-07  0.097513 -0.140353

对于df中的每一行,我想要一个等于下n行的切片, 在这种情况下,我们说n = 2:

2018-01-01  0.568658  0.504093
2018-01-02  0.244716  0.422261

2018-01-02  0.244716  0.422261
2018-01-03 -2.254264 -0.680178

2018-01-03 -2.254264 -0.680178
2018-01-04  0.110540 -0.477153

2018-01-04  0.110540 -0.477153
2018-01-05 -1.342594 -0.005422

等这很容易在一个循环中完成,但是这种操作有熊猫函数吗?可以和小组一起做吗?

谢谢

1 个答案:

答案 0 :(得分:0)

通过pd.DataFrame.rolling函数,您可以生成一个可移动的窗口切片(称为滚动对象),可以在其中使用各种功能进行操作。

在您的情况下,您将使用:

df.rolling(2)

文档中window functions下列出了您可以在此类滚动对象上使用的功能。