我的原始数据是:
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
问题:有人可以在不使用循环的情况下帮助获得快速代码(不是数学方法吗?)>
非常感谢!
我的原始数据是: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(xK,100,0.25),axis = 1)df ['f(K1)'] = df ['...
我不完全理解您的问题,对我而言,所有这些表示法都有些混乱。