数据集中上升和下降值的差异

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据集中上升和下降值的差异相关的知识,希望对你有一定的参考价值。

这是我之前在Excel中所做的,但是现在在python中尝试,有点卡住。找不到相应的库或本机函数。我想,shift()可以提供帮助,但我不知道该在哪里使用它

无需将所有股票代码保持在一个df中,它看起来更好imo

我制作了一个包含10个股票的漂亮数据集,这是一个示例:

                       symbol             open
2020-05-03 00:28:00   BCH/BTC     0.0295400000
2020-05-03 00:35:00   BCH/BTC     0.0291680000
*******************
2020-05-03 18:05:00   BCH/BTC     0.0282650000
2020-05-03 00:28:00   BNB/BTC     0.0019586000
*******************
2020-05-03 17:58:00   XTZ/BTC     0.0003064000
2020-05-03 18:05:00   XTZ/BTC     0.0003065000

[1520 rows x 6 columns]

如您所见,时间是一个索引,并且每个股票代号都相同

任务是再增加两列,例如:

                       symbol             open       is_advancing           ratio
2020-05-03 00:28:00   BCH/BTC     0.0295400000                Nan             Nan
2020-05-03 00:35:00   BCH/BTC     0.0291680000                 -1    0.9874069059
*******************
2020-05-03 18:05:00   BCH/BTC     0.0282650000                  1    1.0028452501
2020-05-03 00:28:00   BNB/BTC     0.0019586000                Nan             Nan
*******************
2020-05-03 17:58:00   XTZ/BTC     0.0003064000                  0               1
2020-05-03 18:05:00   XTZ/BTC     0.0003065000                  1    1.0003263707

[1520 rows x 6 columns]

is_advancing显示先前的值是较高,较小还是相同。 ratio显示当前和上一个之间的比率

我试图尽我所能地解释它,但是如果还有其他问题,请随时提出

答案

您的班次在正确的轨道上。您可以使用np.where()根据条件分配新值。

df = pd.read_clipboard(sep=r"[ ]{2,}")

df['shift'] = df['open'].astype(float).shift(1)

df['is_advancing'] = np.where(df['open'] > df['shift'], 0, 1 )

df['ratio'] = df['open']/df['shift']

print(df)

    symbol  open    shift   is_advancing    ratio
2020-05-03 00:28:00 BCH/BTC 0.029540    NaN 1   NaN
2020-05-03 00:35:00 BCH/BTC 0.029168    0.02954 1   0.987407

以上是关于数据集中上升和下降值的差异的主要内容,如果未能解决你的问题,请参考以下文章

Train Loss保持下降,Valid Loss大幅度波动下降

Verilog hdl 如何检测时钟的上升沿和下降沿?

下面时序图是不是是上升沿输入,下降沿输出?为啥我看理解的都是上升沿呢?

Python实现梯度法(最速上升(下降)法)寻找函数极大(极小)值

在verilog里, 上升沿和下降沿的问题. 求大神帮助, 小的新人一枚. 谢谢先

梯度下降和梯度上升有啥区别?