pandas迭代更新列值

Xue*_*hao 7 python iteration performance numpy pandas

我有一个像下面这样的熊猫系列:

a = pd.Series([a1, a2, a3, a4, ...])

我想根据以下规则创建另一个熊猫系列:

b = pd.Series(a1, a2+a1**0.8, a3 + (a2 + a1**0.8)**0.8, a4 + (a3 + (a2 + a1**0.8)**0.8)**0.8, ...).

这是可行的使用迭代,但我有一个大型数据集(数百万条记录),我必须执行数千次操作(出于优化目的).我需要非常快速地完成这项操作.有没有可能通过使用pandasnumpy内置函数来实现这一点?

Roh*_*ith 0

您可以使用递归函数,它将在 O(log(n)) 时间内运行

def my_func(x):
    if len(x) == 1:
        b.append(x[0])
        return x[0]
    element = x[-1]+0.8*my_func(x[:-1])
    b.append(element)
    return element
b= []
my_func(list(a))
Run Code Online (Sandbox Code Playgroud)