使用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