我的原始数据是:
def f_ST(ST,F,T):
a=ST/F-1-np.log(ST/F)
return 2*a/T
df=pd.DataFrame(range(50,140,5),columns=['K'])
df['f(K0)']=df.apply(lambda x: f_ST(x.K,100,0.25),axis=1)
df['f(K1)']=df['f(K0)'].shift(-1)
df['dK']=df['K'].diff(1)
我想做的事情是:我有一个函数f(k)
f(k)= (k-100)/100 - ln(k/100)
我想计算w,它按照以下步骤进行
tmp(k)=f1_f(k)-f(k)/dk
w[0]=tmpw[0]
w[n]-tmpw[n]-(w[0]+w[1]+...w[n-1])
结果是
nbr date k f(k) f1_f(k) d_k tmpw w
10 2019-02-19 100 0.000000 0.009679 5.0 0.001936 0.001936
11 2019-02-19 105 0.009679 0.037519 5.0 0.005568 0.003632
12 2019-02-19 110 0.037519 0.081904 5.0 0.008877 0.003309
13 2019-02-19 115 0.081904 0.141428 5.0 ...
14 2019-02-19 120 0.141428 0.214852 5.0 ...
15 2019-02-19 125 0.214852 0.301086 5.0
16 2019-02-19 130 0.301086 0.399163 5.0
问题:有人能帮助我们在不使用循环的情况下快速生成代码(不是数学上的)吗
非常感谢
我不完全理解你的问题,对我来说,所有这些符号都有点混乱
如果我得到了您想要的正确结果,那么对于每一行,您都希望有前面所有行的累积值。然后根据该累计值计算此行另一列的值
在这种情况下,我更喜欢一些东西,首先计算一个累计列,然后使用它
例如: 注意,您需要调用list(range())而不是list,因此您的示例抛出了一个错误
印刷品:
相关问题 更多 >
编程相关推荐