Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python数据框架中复制excel计算_Python_Excel_Pandas - Fatal编程技术网

在python数据框架中复制excel计算

在python数据框架中复制excel计算,python,excel,pandas,Python,Excel,Pandas,您好,我正在尝试在python数据框架中复制此excel计算=C2*A3^B3。但无法将前一行的计算字段输入到我的计算中 输入数据: ftax stax 1.000000000 0 0.999959316 3 0.999959316 1 0.999959316 3 0.999959316 3 0.999959316 1 如果我将这些值放在excel中并应用这个公式,我得到的结果如下,并

您好,我正在尝试在python数据框架中复制此excel计算
=C2*A3^B3
。但无法将前一行的计算字段输入到我的计算中

输入数据:

 ftax        stax
 1.000000000     0   
 0.999959316     3   
 0.999959316     1   
 0.999959316     3   
 0.999959316     3   
 0.999959316     1
如果我将这些值放在excel中并应用这个公式,我得到的结果如下,并希望在python中复制相同的结果

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

期望输出:

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
我试过的示例代码

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
我得到的结果如下:

      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  
需要,仅必要第一个值始终为
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

感谢@jezrael的快速回答,但我只得到了两个输入列,并且必须得到我修改过的cal_字段question@Abhis-答案已编辑,始终第一个值为
1
?是,始终为1,因为stax的第一行始终为0。多谢了,我好几个小时都在发疯。