通过Python Pandas分析数据上涨下跌趋势的方法:求离散数据的差分、导数

在实际工作中,我们经常需要分析一组数据的历史走势/趋势情况,比如要从产品数据库中筛选出销量处于上升趋势的产品,或者从股票历史数据库中筛选出一直处于上涨的股票。 那么可以通过分析计算该组数据的差分来模拟求出该组数据走势线的导数,然后通过求导的差分/导数情况判断该组数据的走势情况。从高等数学的导数知识我们知道,如果一个函数的导数大于零,那么该函数在这个区间的趋势处于上升状态,反之,在导数小于0时,函数曲线处于下降状态,而在导数等于0时,函数曲线处于上涨和下降的转折点。通过计算函数有几个零点,可以知道曲线上涨和下降的变化情况,而通过判断导数是大于零还是小于零,我们就能知道曲线是上涨还是下降。

由于产品销售数据或者股价数据都是离散值,而且无法根据这些数据推导出曲线函数,所以直接通过函数求导的方法来判断数据是上涨还是下降是行不通的。但是我们可以求数据的差分并除以步长来近似模拟计算导数。为了演示好看,下面以一组离散正弦数据来进行示例,选正弦函数是因为数据有上下波动趋势,而且正弦函数的导数为余弦函数。

说明:我使用的是Jupyter Notebook环境,方便数据显示

Python里处理数据通常使用Pandas库和Numpy库,计算离散数据的方法就可以使用numpy的方法:

#计算数组a的差分,参数a是一个数组,n是代表几阶差分默认是1,axis是代表按行还是列计算
numpy.diff(a, n=1, axis=-1, prepend=<no value>, append=<no value>)

也可以直接使用Pandas库的方法:

#Pandas库计算差分的方法,periods参数是指定几阶差分,默认是1阶,axis是代表按行还是列计算,默认是按列。按行就改为1
DataFrame.diff(periods=1, axis=0)

先导入相关的库,并设定参数:

#coding utf-8
import
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

跨境IT全栈工程师

觉得有帮助,赏点鼓励下呀

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值