我如何在python中动态创建列本身的总和

问题描述 投票:0回答:1

我的原始数据是:

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,将遵循以下步骤

  1. 获得f(k)的1周期前向值,然后计算
tmp(k)=f1_f(k)-f(k)/dk
  1. w计算为
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 ['...

python dataframe dynamic sum average
1个回答
0
投票

我不完全理解您的问题,对我而言,所有这些表示法都有些混乱。

© www.soinside.com 2019 - 2024. All rights reserved.