熊猫申请与轮班结合

问题描述

我正在尝试查找每个时间间隔内货币的相对移动。

我有一张这样的桌子:

Date        USD_NOK EUR_USD EUR_NOK  
2020-08-09  9.03267 1.17732 10.60526 
2020-08-10  8.97862 1.17749 10.58188

还有这样的功能:

def RelativeStrength(table):
    f1 = table.iloc[0][2]
    f2 = table.iloc[0][0]
    t1 = table.iloc[1][2]
    t2 = table.iloc[1][0]
    n = pow(((f1*f2)/(t1*t2)),1/3)
    n1 = t1 * (n/f1)
    n2 = t2 * (n/f2)
    return n,n1,n2

但是,表中包含数十年的数据,其间隔比每天短得多,而我有很多。

该功能需要在每行上运行,该行将与前一行进行比较。

我可以通过for循环轻松完成此操作,但是使用我的数据集可能要花几天的时间。因此,我希望使用apply或类似的方法。

我尝试过这样的事情:

table.apply(lambda x: [x[0].shift()],axis=1,result_type='expand')

希望得到这样的结果,但我不这样做:

Date        USD_NOK EUR_USD EUR_NOK  NOK    USD    EUR
2020-08-09  9.03267 1.17732 10.60526 1.0021 0.0876 0.9923
2020-08-10  8.97862 1.17749 10.58188 1.0027 1.0005 0.9967

(2020-08-09的结果是虚构的,因为它们取决于2020-08-08的fx交叉点,我尚未发布)

但是,apply似乎一次只看一行。是否可以使用Apply对每行进行计算,包括考虑之前的行?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)