数据集中上升和下降值的差异
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大幅度波动下降
下面时序图是不是是上升沿输入,下降沿输出?为啥我看理解的都是上升沿呢?
Python实现梯度法(最速上升(下降)法)寻找函数极大(极小)值