如何使用python在pandas数据帧中有效地迭代行

苹果

我有一个数据框,它看起来像:

A         B       C
13.06   12.95   -0.11
92.56   104.63  12.07
116.49  219.27  102.78
272.11  487.26  215.15
300.11  780.75  480.64

大约有 100 万条记录。

我想创建一个列 D 其计算如下:

列的第一个值D将为 0,然后:

Col D3= =(D2+1)*C3/B3

Col D4= =(D3+1)*C4/B4

D 列的现值取决于先前的值。

结果如下:

D
0
0.115358884
0.52281017
0.672397915
1.02955022

我可以解决它使用for loop and loc但它需要很多时间。我可以用更有效的pythonic方式解决它吗?

耶斯列

递归计算不可矢量化,为了提高性能使用numba

from numba import jit

@jit(nopython=True)
def f(a, b, c):
    d = np.empty(a.shape)
    d[0] = 0
    for i in range(1, a.shape[0]):
        d[i] = (d[i-1] + 1) * c[i] / b[i]
    return d

df['D'] = f(df['A'].to_numpy(), df['B'].to_numpy(), df['C'].to_numpy())
print (df)
        A       B       C         D
0   13.06   12.95   -0.11  0.000000
1   92.56  104.63   12.07  0.115359
2  116.49  219.27  102.78  0.522810
3  272.11  487.26  215.15  0.672398
4  300.11  780.75  480.64  1.029550

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Python中的Pandas有效地将数据帧重组为日期时间项?

如何在python中有效地合并两个具有容差的数据帧

如何在 Python 中有效地搜索和访问数据帧中的某些单元格?

如何有效地迭代熊猫数据帧的连续块

如何有效地合并 PySpark 数据帧?

如何使用for循环将数据有效地附加到pandas数据帧中

如何在python pandas中的两个数据帧之间有效地搜索?

如何在带有短句的大型数据集中有效地使用spacy?

Python:有效地使用数据帧的数据进行计算

如何在Python中有效地将参数解译到数据库

在python中有效地使用来自csv的数据生成对象

如何在数据帧的每一列中有效地按后继者划分

如何在 Cython 中有效地使用 Python 风格的整数?

从2个数据帧中有效地找到日期时间范围的重叠

在数据帧中有效地获取可变长度的时间片

在pyspark中有效地附加大量数据帧

如何为数据帧的单元赋值以有效地在另一个对象上进行迭代

在python中有效地迭代dict的dict/pythonic

如何有效地聚合 tex 数据 - python

在pandas数据框中的单行表示中有效地聚合多行数据

如何使用 Pandas 数据框有效地更新 mysql 表?

Python pandas 可以有效地为连续行发现数据帧中的时间差

如何有效地使用Python属性?

有效地连接数据帧

如何在python/pandas中有效地創建索引和列名組合的矩陣

如何在Python中有效地在多个线程和进程之间共享数据?

如何在Python中有效地循环访问三个不同的数据集合?

如何在python 3中有效地将原始字节写入numpy数组数据

如何有效地分辨ga_sessions_intraday_中有可用的新数据