python:使用scipy-lineregress数据帧的两列

2024-06-16 08:57:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将linregressscipy.stats)用于一个数据帧的2列(都有7行),但我总是遇到这样的消息:

 slope, intercept, r_value, p_value, std_err=linregress( sma5_slope[stocks],sma5_slope['counter'])
  File "/usr/lib/python3.6/site-packages/scipy/stats/_stats_mstats_common.py", line 93, in linregress
    ssxm, ssxym, ssyxm, ssym = np.cov(x, y, bias=1).flat
  File "/usr/lib/python3.6/site-packages/numpy/lib/function_base.py", line 3044, in cov
    X = np.concatenate((X, y), axis=0)
ValueError: all the input array dimensions except for the concatenation axis must match exactly

我有一个熊猫数据框sma5,只有一个数据列和索引(=date)。 我试图计算最后7行的斜率,因此我用最后7行创建了一个新的df:

^{pr2}$

添加计数器:

sma5_slope['counter'] = range(len(sma5_slope))

sma5_坡度如下:

               TSLA  counter
2018-04-12  297.734        0
2018-04-13  297.942        1
2018-04-16  298.252        2
2018-04-17  294.850        3
2018-04-18  293.334        4
2018-04-19  294.534        5
2018-04-20  293.130        6

然后我将sma5_slope的2列传递给linregress

slope, intercept, r_value, p_value, std_err=linregress( sma5_slope['counter'], sma5_slope[stocks]) 

(我循环几个元素,stocks是当前符号。在

你能指出我的错误在哪里吗?:) 我以为X和{}都由7个元素组成。。。?在


Tags: 数据valuelibusrstatscounterscipyslope