如何使用循环将行除以前一行的内容

时间:2018-06-04 15:41:19

标签: python pandas numpy

使用pandas DataFrame,我想取每一行并将其除以第i-1行。我想使用矢量化(即,不用于循环)。

e.g。如果我有以下DataFrame:

1      10  
2      20  
8      160  
32     480 

我最终会:

1      10   
2       2   
4       8  
4       3

N.B。除法运算使用旧表值,而不是更新的值。

P.S。抱歉格式不好!

1 个答案:

答案 0 :(得分:6)

使用,divshiftfillna

df.div(df.shift(1)).fillna(df).astype(int)

输出:

   A   B
0  1  10
1  2   2
2  4   8
3  4   3