Python 如何有效地实施这种差异化操作?
我想从现有的数据帧构建一个数据帧,其中每行的每个值都取决于前一个值。我有一个初始值Python 如何有效地实施这种差异化操作?,python,python-2.7,pandas,series,Python,Python 2.7,Pandas,Series,我想从现有的数据帧构建一个数据帧,其中每行的每个值都取决于前一个值。我有一个初始值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_r
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循环的。如何才能更有效地编写此文档?我认为需要将第一个值v0
放到第一个位置,然后调用:
答案被修改为第一个值
v0
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