Python Pandas Dataframe自引用变量,如函数nz(x,y)到python pandas数据框逻辑

时间:2018-02-19 08:51:26

标签: python pandas numpy dataframe

在我的编码中,我遇到了将非python函数转换为自引用变量的python函数的问题。

简要介绍:自引用变量是一个变量,它引用其声明右侧前一个柱上的过去值。

有关自我引用变量https://blog.tradingview.com/en/tradingview-pine-script-new-features-223/

下此链接的详情

但是,在第一个条上没有srv值,因此第一个条上缺少值srv 1(更确切地说,它将是NaN - 非数字)。要更改NaN值,可以将调用前一个值转换为nz函数

nz的 用系列中的零(或给定值)替换NaN值。

输入:

             close    smooth
date        
01-07-02    5.4127  0.416113
02-07-02    5.4438  0.416113
03-07-02    5.4661  0.416114
04-07-02    5.5283  0.416115
05-07-02    5.5905  0.416116
08-07-02    5.6255  0.416116
09-07-02    5.6167  0.416116
10-07-02    5.2222  0.41611
11-07-02    5.1863  0.416109
12-07-02    5.3194  0.416111
15-07-02    5.333   0.416111
16-07-02    5.3155  0.416111
17-07-02    5.0445  0.416107
18-07-02    5.0804  0.416107
19-07-02    5.1513  0.416109
22-07-02    4.9735  0.416106
23-07-02    5.0619  0.416107
24-07-02    5.0619  0.416107
25-07-02    4.8492  0.416104

我想将以下函数转换为python代码

kama=nz(kama[1], close)+smooth*(close-nz(kama[1], close))

让我们看看具体情况

kama输出应采用dataframe stockdata ['kama']

的格式

nz(kama 1,close)

这里第一次kama将是NaN因此将被分配并且第二次迭代之前的kama值将被考虑用于计算  因此,对于上面给出的输入,第一个kama值将是5.4127(第一个接近值)之后的前一个kama值。

平滑和关闭值已经可用,如何将此函数转换为非零计算的python代码。

最终的结果应该是 kama = nz(kama 1,close)+ smooth *(close-nz(kama 1,close))

预期输出

             close    smooth    kama
date        
01-07-02    5.4127  0.416113    prev.close+smooth*(prev.close-close)
02-07-02    5.4438  0.416113    prevourKama+smooth*(prev.row.close-previouskama)
03-07-02    5.4661  0.416114    "
04-07-02    5.5283  0.416115    "
05-07-02    5.5905  0.416116    "
08-07-02    5.6255  0.416116
09-07-02    5.6167  0.416116
10-07-02    5.2222  0.41611
11-07-02    5.1863  0.416109
12-07-02    5.3194  0.416111
15-07-02    5.333   0.416111
16-07-02    5.3155  0.416111
17-07-02    5.0445  0.416107
18-07-02    5.0804  0.416107
19-07-02    5.1513  0.416109
22-07-02    4.9735  0.416106
23-07-02    5.0619  0.416107
24-07-02    5.0619  0.416107
25-07-02    4.8492  0.416104

这里最终第一行没有kama值可用,因为我们检查前一个值,为了避免Nan值,更换关闭值。如果在任何一行中kama为零,那么它必须被替换为当前行收盘价值。

0 个答案:

没有答案