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

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...