在熊猫中用相同的数据框(切片)划分数据框

时间:2016-11-23 11:21:44

标签: python pandas numpy

我有数据框 df =

     a    b     c
0  1.0  4.0   5.0
1  3.0  8.0  45.0
2  5.0  3.0  67.0
3  2.0  7.0  34.0

我现在想要将数据帧df的第2行和第3行除以df的第0行和第1行,即我希望将第i行除以第i-k行。预期结果应为

     a    b     c
0  Nan  Nan   Nan
1  Nan  Nan Nan
2  5.0/1  3.0/4  67/5
3  2/3  7/8  34/45

作为一个简单的公式,如果假设价格是数据帧而t是行,则它是(price [t] / price [t-N])。 有一个简单的方法来做到这一点。

1 个答案:

答案 0 :(得分:3)

div使用shift

print (df.shift(2))
     a    b     c
0  NaN  NaN   NaN
1  NaN  NaN   NaN
2  1.0  4.0   5.0
3  3.0  8.0  45.0

print (df.div(df.shift(2)))
         a      b          c
0       NaN    NaN        NaN
1       NaN    NaN        NaN
2  5.000000  0.750  13.400000
3  0.666667  0.875   0.755556