首页 > 解决方案 > 如何在熊猫数据框列中找到趋势变化

问题描述

                             open   high    low     close   volume  openclose
date                        
2020-08-04 09:15:00+05:30   227.00  229.00  226.40  226.70  157982  -0.30
2020-08-04 09:20:00+05:30   226.55  226.80  222.40  223.15  253212  -3.40
2020-08-04 09:25:00+05:30   223.00  223.15  220.15  220.15  236819  -2.85
2020-08-04 09:30:00+05:30   220.15  220.60  217.55  219.90  628153  -0.25
2020-08-04 09:35:00+05:30   219.70  221.80  218.90  221.60  260912  1.90

所以openclose列有下降趋势,突然有上升趋势,如何判断是否有一系列下降趋势和趋势变化。

任何线索或帮助都会有所帮助。提前致谢

标签: pythonpandasstock

解决方案


您想确定导数( dy / dx) 并查看它是负数还是正数。如果它是积极的,则意味着存在积极的趋势:

derivative = df['openclose'].diff() / df.index.to_series().diff().dt.total_seconds()
df['trend'] = derivative.gt(0).map({False: -1, True: 1})
                             open    high     low   close  volume  openclose  trend
date                                                                               
2020-08-04 09:15:00+05:30  227.00  229.00  226.40  226.70  157982      -0.30     -1
2020-08-04 09:20:00+05:30  226.55  226.80  222.40  223.15  253212      -3.40     -1
2020-08-04 09:25:00+05:30  223.00  223.15  220.15  220.15  236819      -2.85      1
2020-08-04 09:30:00+05:30  220.15  220.60  217.55  219.90  628153      -0.25      1
2020-08-04 09:35:00+05:30  219.70  221.80  218.90  221.60  260912       1.90      1

推荐阅读