1 回答

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個贊
由于您的所有操作(*、/和**)默認(rèn)情況下都具有內(nèi)置的向量化支持,因此我建議您直接進(jìn)行計(jì)算而不使用.apply().
df["f1_t1"] = df["EUR_NOK"].shift() / df["EUR_NOK"] # f1 over t1
df["f2_t2"] = df["USD_NOK"].shift() / df["USD_NOK"] # f2 over t2
df["NOK"] = (df["f1_t1"] * df["f2_t2"])**(1/3)
df["USD"] = df["NOK"] / df["f1_t1"]
df["EUR"] = df["NOK"] / df["f2_t2"]
# output
df
Date USD_NOK EUR_USD ... NOK USD EUR
0 2020-08-09 9.03267 1.17732 ... NaN NaN NaN
1 2020-08-10 8.97862 1.17749 ... 1.002740 1.000529 0.996740
請注意,創(chuàng)建的是可以多次重用的中間變量,而不是簡單的移位。這部分特定于您的公式。因此可以進(jìn)一步減少操作次數(shù)。
添加回答
舉報