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

问题描述 投票:3回答:1

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

例如如果我有以下DataFrame:

1      10  
2      20  
8      160  
32     480 

我最终会:

1      10   
2       2   
4       8  
4       3

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

附:抱歉格式不好!

python pandas numpy
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.