gpt4 book ai didi

python - 如何高效地实现这种差分运算呢?

转载 作者:行者123 更新时间:2023-12-01 09:16:43 26 4
gpt4 key购买 nike

我想从现有数据框架构建一个数据框架,其中每行的每个值都取决于前一个值。我有一个初始值 v0 作为起点。我举个例子

In [126]:import pandas as pd

In [127]: df = pd.DataFrame([1.0, 1.1, 1.2, 1.3])

In [128]: df_result = df.copy()

In [129]: v0 = 10

In [130]: for i in range(1, len(df.index)):
...: df_result.iloc[i, 0] = df.iloc[i, 0]*df_result.iloc[i-1, 0]
...:

In [131]: df_result
Out[131]:
0
0 1.000
1 1.100
2 1.320
3 1.716

在[132]中:

我的问题是关于for循环的。我怎样才能更有效地写这个?

最佳答案

我相信首先需要numpy.insertv0 值设置为第一个位置,然后调用 numpy.cumprod :

df = pd.DataFrame([1.0, 1.1, 1.2, 1.3], columns=['r'])
v0 = 10

df['n'] = np.cumprod(np.insert(df['r'].values[1:], 0, v0))
print (df)
r n
0 1.0 10.00
1 1.1 11.00
2 1.2 13.20
3 1.3 17.16

关于python - 如何高效地实现这种差分运算呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51187850/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com