基于特定条件使用Pandas计算涨跌幅百分比
需求说明
数据集中存在cross up和cross down标识,需基于cross down的价格,计算其前一组cross up及后续所有up行的涨跌幅百分比。
举例说明:
第一行是cross up,后续三行是up,对应的价格分别为390.3800、389.9000、389.9500,对应的cross down价格为388.8600。需要为这三行up数据分别计算与该cross down价格的涨跌幅,即:
- 第一行:
pct_diff(388.8600, 390.3800) - 第二行:
pct_diff(388.8600, 389.9000) - 第三行:
pct_diff(388.8600, 389.9500)
数据集
2022-07-08 11:30:00 0.780577 0.730154 0.050422 up cross up 390.3800 2022-07-08 11:45:00 0.798424 0.743808 0.054616 up 0 389.9000 2022-07-08 12:00:00 0.807296 0.756506 0.050790 up 0 389.9500 2022-07-08 12:15:00 0.718096 0.748824 -0.030728 down cross down 388.8600 2022-07-08 12:30:00 0.569827 0.713024 -0.143197 down 0 387.9800 2022-07-08 12:45:00 0.412866 0.652993 -0.240127 down 0 387.5500 2022-07-08 13:00:00 0.255670 0.573528 -0.317858 down 0 387.1800 2022-07-08 13:15:00 0.176791 0.494181 -0.317390 down 0 387.7716 2022-07-08 13:30:00 0.155127 0.426370 -0.271243 down 0 388.3000 2022-07-08 13:45:00 0.145170 0.370130 -0.224960 down 0 388.4101 2022-07-08 14:00:00 0.141290 0.324362 -0.183072 down 0 388.4800 2022-07-08 14:15:00 0.174931 0.294476 -0.119545 down 0 388.9600 2022-07-08 14:30:00 0.247955 0.285171 -0.037217 down 0 389.5700 2022-07-08 14:45:00 0.350205 0.298178 0.052027 up cross up 390.1700 2022-07-08 15:00:00 0.415148 0.321572 0.093576 up 0 390.0299 2022-07-08 15:15:00 0.462105 0.349679 0.112426 up 0 390.0400 2022-07-08 15:30:00 0.455337 0.370810 0.084527 up 0 389.5600 2022-07-08 15:45:00 0.436071 0.383862 0.052208 up 0 389.4500 2022-07-08 16:00:00 0.354582 0.378006 -0.023424 down cross down 388.6800
内容的提问来源于stack exchange,提问作者jdkealy
相关产品推荐
相关产品推荐

