在Python数据框中复制Excel计算

Abh*_*his 2 python excel pandas

你好,我正在尝试=C2*A3^B3在 python 数据框中复制这个 excel 计算。但无法将前一行的计算字段放入我的计算中。

Excel数据

公式

输入数据 :

 ftax        stax
 1.000000000     0   
 0.999959316     3   
 0.999959316     1   
 0.999959316     3   
 0.999959316     3   
 0.999959316     1
Run Code Online (Sandbox Code Playgroud)

如果我将值放入 excel 并应用此公式,我会得到以下结果并希望在 python 中复制相同的结果

=C2*A3^B3在单元格 C3 和 =A2^B2单元格 C2 中

期望的输出:

ftax         stax   cal_field
1.000000000  0      1.000000000
0.999959316  3      0.999877952
0.999959316  1      0.999837272
0.999959316  3      0.999715244
0.999959316  3      0.999593230
0.999959316  1      0.999552562
Run Code Online (Sandbox Code Playgroud)

我尝试过的示例代码

nav_df = pd.DataFrame(nav_cal)
nav_df[cal_filed_1] = nav_df[cal_filed].shift(1).fillna("1")

print (nav_df[cal_filed]*(nav_df[cal_filed_1])**nav_df[9]) #I think this is not the right way
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

      ftax     stax cal_field
0     0.999996   0  1.000000  
1     0.999996   3  0.999837  
2     0.999996   1  0.999919  
3     0.999996   3  0.999837  
4     0.999996   3  0.999837  
5     0.999996   1  0.999919  
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 5

需要cumprod,只有必要第一个值始终是1

df['cal_field'] = (df['ftax'] ** df['stax']).cumprod()
print (df)
       ftax  stax  cal_field
0  1.000000     0   1.000000
1  0.999959     3   0.999877
2  0.999959     1   0.999836
3  0.999959     3   0.999713
4  0.999959     3   0.999590
5  0.999959     1   0.999549
Run Code Online (Sandbox Code Playgroud)