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

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

例如如果我有以下DataFrame:

1      10  
2      20  
8      160  
32     480 

我最终会:

1      10   
2       2   
4       8  
4       3

注:除法运算使用旧表值,而不是更新的表值.

附:抱歉格式不好!

最佳答案 使用,div,shift和fillna:

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

输出:

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