使用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。抱歉格式不好!
答案 0 :(得分:6)
使用,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