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

标签 python pandas numpy

使用 pandas DataFrame,我想取出第 i 行并将其除以第 i-1 行。我想使用矢量化(即没有 for 循环)。

例如如果我有以下数据框:

1      10  
2      20  
8      160  
32     480 

我最终会得到:

1      10   
2       2   
4       8  
4       3

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

附言抱歉格式错误!

最佳答案

使用、divshiftfillna:

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

输出:

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

关于python - 如何使用循环将一行除以前一行的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50684255/

相关文章:

python - 如何使用 Python pandas 将某些列扩展为行

python - 如何在 Pandas 中实现 rolling_pct_change(period)?

python - 处理 NaN 进行距离计算时出现问题?

php - Microsoft Word 自动化 - 以编程方式删除标题(及其子 indo)

python - 在不创建序列文件的情况下运行 BLAST (bl2seq)

python - 在 Pandas 数据框中的特定时间之间选择数据

python - 在基于另一列的列中重复值

python - 如果嵌入了 Python,如何从 C 执行 .py 脚本?

python - 无法在 Bokeh 图 block 上绘制点

python - 将条件应用于 numpy 数组的选项